跳过正文
  1. 文章/
  2. Python/
  3. GUI/
  4. PySide6/

2、QtDesigner

·493 字·1 分钟· loading · loading · ·
Python GUI PySide6
GradyYoung
作者
GradyYoung
PySide6 - 点击查看当前系列文章
§ 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
#

  • QHBoxLayout 水平布局:把控件从左到右水平横着摆放
  • QVBoxLayout 垂直布局:把控件从上到下竖着摆放
  • QGridLayout 表格布局:把多个控件格子状摆放
  • QFormLayout 表单布局:表单就像一个只有两列的表格,非常适合填写注册表单这种类型的界面
PySide6 - 点击查看当前系列文章
§ 2、QtDesigner 「 当前文章 」