我们配置好 QtDesigner 后,就可以在 IDE 中创建.ui文件了
使用 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 #
- QHBoxLayout 水平布局:把控件从左到右水平横着摆放
- QVBoxLayout 垂直布局:把控件从上到下竖着摆放
- QGridLayout 表格布局:把多个控件格子状摆放
- QFormLayout 表单布局:表单就像一个只有两列的表格,非常适合填写注册表单这种类型的界面