我有一个非常简约的QWidget
设置,由两个类组成。MainWindow
和MainWidget
。
两者都被加载为.UI文件,这会导致QT中的工作GUI(使用QTCreator运行),但是当我尝试使用PYQT运行它时,MainWidget
的布局不会生效。
main.py:
import sys
from PyQt5 import QtCore, QtWidgets, uic
class MyMainWindow(QtWidgets.QMainWindow):
def __init__(self, *args):
QtWidgets.QMainWindow.__init__(self, *args)
self.ui = uic.loadUi("mainwindow.ui", self)
app = QtWidgets.QApplication(sys.argv)
mainWindow = MyMainWindow()
mainWindow.show()
sys.exit(app.exec_())
mainwidget.py:
from PyQt5 import QtCore, QtWidgets, uic
class MainWidget(QtWidgets.QWidget):
def __init__(self, *args):
QtWidgets.QWidget.__init__(self, *args)
self.ui = uic.loadUi("mainwidget.ui", self)
在mainwidget.ui
中,设置了窗口小部件的HorizonTallayout。在QTCreator的设计师和使用时,看起来都不错。只有当我运行Python代码时,布局才生效。当我最大化窗口时,MainWidget
的内容保持很小。
我在这里缺少什么?
您应该继承
class MyMainWindow(QtWidgets.QWidget):
在您的Main.py
我没有找到解决方案,而是解决方案。
这里的问题似乎是,MainWidget
无法正确初始化(因为Mfoxru使我提出了问题)。
设置它的方式,我将MainWidget
定义为中央小部件的自定义类。这样,布局被打破了。
解决方法是不要为中央小部件设置自定义类,并在运行时将MainWidget
的实例设置为中央小部件。
导致Python的变化:
self.setCentralWidget(mainwidget.MainWidget())
在main.py
中直接在CC_11