我正在使用Qt设计器4.8.7,从它开始。我创建了一个MainWindow
,其中我想加载一个布局。
我有一个小部件,使用来自Qt设计师的pyuic4
生成。
我正在加载我的小部件
self.setCentralWidget(myWidget)
它抛出了这个错误:
AttributeError: 'Ui_myWidget' object has no attribute 'setObjectName'
它清楚地解释了传递的对象未被识别为QWidget。修改类定义可以解决这个问题:
class Ui_myWidget(object):
到
class Ui_myWidget(QtGui.QWidget):
由于小工具会更新,每次再次生成.py
时,我都必须手动编辑。我想避免这种情况。我错过了一步吗?
答案 0 :(得分:1)
Qt Designer的目标是实现视图,因此它不实现QWidget,我们有责任通过小部件使用该实现,我建议执行以下操作:
class MyWidget(QtGui.QWidget, Ui_myWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent=None)
self.setupUi(self)
然后您创建此类的对象并在其他窗口小部件中使用它:
myWidget = MyWidget(self)
self.setCentralWidget(myWidget)