[英]Main Window resize in Python with Qt
我在ui_main.py
文件中有一个 gui(在 Qt Designer 中设计)。 我以这种方式将它加载到我的主*.py
文件中:
from PyQt4 import QtGui, QtCore
from ui_main import Ui_MainWindow
class MyForm(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
...
ui_main.py 文件:
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
_fromUtf8 = lambda s: s
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(667, 559)
我需要在应用程序启动期间调整主窗口的大小。 我的主要问题是我无法访问主窗口对象。
self.ui.MainWindow.resize(300,300)
AttributeError: 'Ui_MainWindow' object has no attribute 'MainWindow'
如果我添加到ui_main.py
文件:
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
self.uiui = MainWindow
我可以调整我的主窗口大小:
self.ui.uiui.resize(300,300)
但我知道编辑生成的 ui 文件非常糟糕。 如何在不编辑 gui 文件的情况下调整主窗口的大小?
由pyuic
(通过 Qt Designer)创建的 ui 模块只是一个简单的辅助类,带有几个初始化方法。
这两种方法都从 Qt Designer 中获取一个顶级 ui 类的实例(通常是QMainWindow
),然后将所有 ui 元素添加到该实例中。 这确保了在 Qt Designer 中创建的所有内容都可以从顶级小部件访问。
因此,您的MyForm
子类将self
( QMainWindow
的一个实例)传递给setupUi
,然后它将成为您在 ui 文件中看到的MainWindow
变量。
这意味着您只需执行以下操作即可调整主窗口的大小:
self.resize(300, 300)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.