PySide2直接加载ui文件如何操作控件的方法

问题描述

官方的例子讲了两种使用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类的方式进行开发。

你可能感兴趣的:(PySide2直接加载ui文件如何操作控件的方法)