问题描述
官方的例子讲了两种使用UI文件的方法,一种是先通过pyside2-uic mainwindow.ui > ui_mainwindow.py
命令生成一个python类,然后再调用这个类进行操作;另一种就是利用QtUiTools模块直接加载UI文件,实现界面显示。
问题:官网的例子里只实现了UI界面的加载显示,没有介绍如何去访问具体的控件!
解决方法
import sys
from PySide2.QtUiTools import QUiLoader
from PySide2.QtWidgets import QApplication
from PySide2.QtCore import QFile
def on_pushButton_connect_clicked():
print("Button click!")
if __name__ == "__main__":
app = QApplication(sys.argv)
ui_file = QFile("mainwindow.ui")
ui_file.open(QFile.ReadOnly)
loader = QUiLoader()
window = loader.load(ui_file)
ui_file.close()
#在这里加入信号触发、空间控制等代码
window.pushButton_connect.clicked.connect(on_pushButton_connect_clicked)
window.comboBox_log_level.addItem('Item1')
window.comboBox_log_level.addItem('Item2')
#添加结束
window.show()
sys.exit(app.exec_())
这种方式虽然避免了每次都更改都UI文件都得生成一次类文件的麻烦,但是也具有很大的局限性,建议还是使用生成ui类的方式进行开发。