我用Qt设计器创建了一个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
“children”已经包含在UI中创建的小部件“QPushButton1”、“QTextBrowser1”,但是否应该通过reserve findChildren()方法访问?
访问.ui文件的小部件的优雅方式是什么?
由于Qt Designer中的小部件名称必须是唯一的,所以层次结构(至少用于获取对小部件的引用)是扁平的(没有冲突的风险),因此最好的方法是通过以下方式访问它们:
这将在Qt Designer中的变量
my_widget
中放置一个名为“mywidget_name”的小部件的引用。在我想说,上面的方法是访问加载.ui文件时创建的小部件的最有效的pythonic。在
在运行时加载UI有两个缺点:
ui
背后的代码。在假设您使用的是PySide的现代版本“Qt for Python”,另一种方法是将.ui文件“编译”为Python类(请参见docs)。为此,在保存
filename.ui
之后,执行在您的虚拟环境中,如果有的话。新类将被称为Ui_MainWindow。假设您的UI中有一个
^{pr2}$text_box
小部件,现在可以访问它的属性和方法。下面是一个完整的工作示例:注意事项:
相关问题 更多 >
编程相关推荐