私はPyQt4でアプリケーションを作成しており、これはこれまでのところ私のコードです:
_import sys
from PyQt4 import QtGui, QtCore
class MainWindow(QtGui.QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.initUi()
def initUi(self):
self.setWindowTitle('Main Menu')
self.setFixedSize(1200, 625)
self.firstWidgets()
self.show()
def firstWidgets(self):
self.vbox1 = QtGui.QVBoxLayout()
self.task1 = QtGui.QLabel('Check 1', self)
self.task1CB = QtGui.QCheckBox(self)
self.hbox1 = QtGui.QHBoxLayout()
self.hbox1.addWidget(self.task1)
self.hbox1.addWidget(self.task1CB)
self.vbox1.addLayout(self.hbox1)
self.setLayout(self.vbox1)
def main():
application = QtGui.QApplication(sys.argv)
gui = MainWindow()
sys.exit(application.exec_())
if __name__=='__main__':
main()
_
私の問題はMainWindow.firstWidgets()
にあります。レイアウトを設定しようとしましたが、そのフォームに初めて_.setLayout
_を使用したのにエラーが発生し、混乱します。
QWidget :: setLayout:すでにレイアウトがあるMainWindow ""にQLayout ""を設定しようとしています
QLayout
に直接QMainWindow
を設定することはできません。 QWidget
を作成し、それをcentral widgetとしてQMainWindow
に設定し、QLayout
をそれに割り当てる必要があります。
wid = QtGui.QWidget(self)
self.setCentralWidget(wid)
layout = QtGui.QVBoxLayout()
wid.setLayout(layout)