我用Qt Designer创建了一个GUI并通过它访问它
def loadUiWidget(uifilename, parent=None):
loader = QtUiTools.QUiLoader()
uifile = QtCore.QFile(uifilename)
uifile.open(QtCore.QFile.ReadOnly)
ui = loader.load(uifile, parent)
uifile.close()
return ui
MainWindow = loadUiWidget("form.ui")
MainWindow.show()
children = MainWindow.children()
button1 = MainWindow.QPushButton1
Run Code Online (Sandbox Code Playgroud)
"children"已经包含在UI中创建的小部件"QPushButton1","QTextBrowser1",但是不应该通过recoursive findChildren()方法访问它们?
访问.ui文件小部件的优雅方法是什么?
参考: 找到正确的实例, Load .ui文件
由于Qt Designer中的窗口小部件名称必须是唯一的,因此层次结构(至少用于获取对窗口小部件的引用)是扁平化的(没有冲突风险),因此最好的方法是通过以下方式访问它们:
loader = QtUiTools.QUiLoader()
ui = loader.load('filename.ui', parent)
my_widget = ui.my_widget_name
Run Code Online (Sandbox Code Playgroud)
这将在变量中对Qt Designer中名为"my_widget_name"的窗口小部件进行引用my_widget.
我会说上面是访问加载.ui文件时创建的小部件的最pythonic方式.
| 归档时间: |
|
| 查看次数: |
1901 次 |
| 最近记录: |