我已经在 pyqt4 中创建了一个自定义小部件,我已经对其进行了处理和测试,现在准备将其加载到我的主窗口中。由于它没有出现在设计器中,我需要手动将其手动添加到我的主窗口中。
我的小部件使用 uic 来加载 ui 文件,而不是将其转换为 py 文件(到目前为止它更快更轻松),所以它看起来像这样:
class widgetWindow(QtGui.QWidget):
def __init__(self, parent = None):
super(widgetWindow, self).__init__(parent)
self.ui = uic.loadUi("widget.ui")
#everything else
现在在我的主类中(为简洁起见)我创建布局,将小部件添加到布局中,然后将其添加到主小部件
class main(QtGui.QMainWindow):
def __init__(self, parent = None):
super(main, self).__init__(parent)
self.ui = uic.loadUi("testWindow.ui")
mainlayout = QtGui.QVBoxLayout()
window = widgetWindow(self)
mainlayout.addWidget(window)
centerWidget = QtGui.QWidget()
centerWidget.setLayout(mainlayout)
self.ui.setCentralWidget(centerWidget)
没有抛出任何错误,它会为小部件腾出空间,但它根本不会显示任何东西。
添加行 window.ui.show() 只会弹出一个新窗口,覆盖它应该在主窗口上占据的空间。我错过了什么?