UI文件布局设置在PYQT中不起作用



我有一个非常简约的QWidget设置,由两个类组成。MainWindowMainWidget
两者都被加载为.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

之后

相关内容

  • 没有找到相关文章

最新更新