2、QtDesigner

我们配置好 QtDesigner 后,就可以在 IDE 中创建.ui文件了

image-20250421104557013

image-20250421104616776

使用 UI 文件

动态加载UI文件

from PySide6.QtWidgets import QApplication
from PySide6.QtUiTools import QUiLoader

application = QApplication([])

ui_loader = QUiLoader()
ui = ui_loader.load('say_hello.ui')

ui.show()
application.exec()

转化UI文件为Python代码

还有一种使用UI文件的方式:先把UI文件直接转化为包含界面定义的Python代码文件,然后在你的程序中使用定义界面的类

执行如下格式的命令转化

pyside6-uic say_hello.ui > say_hello_ui.py

代码文件中这样使用定义界面的类

from PySide6.QtWidgets import QApplication,QWidget
from say_hello_ui import Ui_Form

application = QApplication([])

# 实例化自定义 ui 类
ui = Ui_Form()
# 由于我们的 ui 窗体选择的是QWidget,所以这里实例化一个QWidget
window = QWidget()
# 初始化界面
ui.setupUi(window)

window.show()
application.exec()

按照规范编码的形式,我们应该这么写

from PySide6.QtWidgets import QApplication,QWidget
from say_hello_ui import Ui_Form

class MyWindow(QWidget,Ui_Form):
    def __init__(self):
        super().__init__()
        self.setupUi(self)

application = QApplication([])
my_window = MyWindow()
my_window.show()
application.exec()

两种方式的区别

通常采用动态加载比较方便,因为改动界面后,不需要转化,直接运行,特别方便。

但是,如果你的程序里面有非qt designer提供的控件, 这时候,需要在代码里面加上一些额外的声明,而且可能还会有奇怪的问题。往往就要采用转化Python代码的方法。

布局 Layout