1
我正在創建一個加載了幾個.ui文件的應用程序。第一個是QMainWindow類型,其他是QWidget類型。如何使用PyQt4.uic.loadUi將第二個.ui加載到自己的目錄中?
我不知道如何加載第二個用戶界面(module.ui
)到自我,使小部件可通過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,而不是加載到從一開始的自我。
如果我嘗試加載UI進自我,我得到一個錯誤:
uic.loadUi('module.ui', self)
>>> QLayout: Attempting to add QLayout "" to TestApp "Form", which already has a layout