我正在创建一个程序,需要加载一些 .ui 文件。第一个是 QMainWindow 类型的,其它的是 QWidget 类型的。
我无法弄清楚如何将第二个 UI(module.ui)加载到 self 中,并通过
请问如何实现这个功能?
我可以这样做:
我无法弄清楚如何将第二个 UI(module.ui)加载到 self 中,并通过
self.<widget_name>
访问小部件。请问如何实现这个功能?
from PyQt4 import QtGui
from PyQt4 import uic
class TestApp(QtGui.QMainWindow):
def __init__(self):
super(TestApp, self).__init__()
# Load main window and the module
uic.loadUi('main_window.ui', self) # QMainWindow, contains testLayout, loads into self
ui_module = uic.loadUi('module.ui') # QWidget
# Attach module to main window
self.testLayout.addWidget(ui_module) # this works fine
# Edit widget in UI module
self.label.setText('Hello') # does not work (since self.label doesn't exist)
我可以这样做:
self.label = ui_module.label
self.label.setText('Hello')
...但我希望从一开始就将UI加载到“self”中。
如果我尝试将UI加载到“self”中,就会出现错误:
uic.loadUi('module.ui', self)
>>> QLayout: Attempting to add QLayout "" to TestApp "Form", which already has a layout