Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 18, 2013 00:22:42

hcfnhmrx@sharklasers.com
Зарегистрирован: 2013-08-05
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Размещение Layout

from PyQt4 import QtCore, QtGui
import sys
class Window(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QMainWindow.__init__(self, parent)
        exitAction = QtGui.QAction(QtGui.QIcon('icon/icon-exit.png'), u'Выйти', self)
        exitAction.setShortcut('Ctrl+Q')
        self.connect(exitAction, QtCore.SIGNAL('triggered()'), QtCore.SLOT('close()'))
        aboutAction = QtGui.QAction(QtGui.QIcon('icon/icon-info-sign.png'), u'О программе', self)
        menubar = self.menuBar()
        fileMenu = menubar.addMenu(u'Файл')
        fileMenu.addAction(exitAction)
        infoMenu = menubar.addMenu(u'Справка')
        infoMenu.addAction(aboutAction)
        lineEdit = QtGui.QLineEdit()
        form = QtGui.QFormLayout()
        form.addRow(u"&Название:", lineEdit)
        form.addRow(u"&Описание:", lineEdit)
        self.setLayout(form)
app = QtGui.QApplication(sys.argv)
window = Window()
window.setWindowTitle('Test')
window.setGeometry(0, 0, 350, 400)
app.setWindowIcon(QtGui.QIcon("/icon/icon-progr.png"))
window.show()
sys.exit(app.exec_())

При запуске говорит следующие QWidget::setLayout: Attempting to set QLayout “” on Window “”, which already has a layout
Успел прочитать, что вся загвоздка, что я наследую класс QtGui.QMainWindow. Как решить данную проблему? Кстати если попытаться без макета просто разместить в окне виджет ввода, то он не отображается. Объясните пожалуйста тонкости работы с классом QMainWindow.

Отредактировано hcfnhmrx@sharklasers.com (Авг. 18, 2013 00:27:41)

Офлайн

#2 Авг. 18, 2013 09:30:41

sergeek
Зарегистрирован: 2012-06-26
Сообщения: 470
Репутация: +  43  -
Профиль   Отправить e-mail  

Размещение Layout

У QMainWindow есть свой layout, установи центральный виджет:

central = QtGui.QWidget()
central.setLayout(form)
self.setCentralWidget(central)

Офлайн

#3 Авг. 18, 2013 12:41:56

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2759
Репутация: +  185  -
Профиль   Отправить e-mail  

Размещение Layout

Используй дизайнер.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#4 Авг. 18, 2013 13:25:13

hcfnhmrx@sharklasers.com
Зарегистрирован: 2013-08-05
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Размещение Layout

Rodegast я только знакомлюсь с библиотекой, сначала хочу узнать её и научиться пользоваться, а потом уже для быстрой разработки можно использовать дизайнер.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version