PySide6————Designer使用技巧

文章讲述了如何解决控件不随窗口大小变化的问题,强调了布局的重要性,以及如何使用Spacer控件优化界面空间。还介绍了Qt中的UI设计、预览、资源系统管理和qrc文件的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题1:控件不随窗口大小改变而改变,怎么解决?

解答:原因是窗口没有设置布局,只有设置了布局且控件加入布局才会实现自适应(所以布局=自适应)。子控件不随父控件大小而改变也是因为父控件没有设置布局。注意:如果窗口为空(即没有子控件)是无法设置布局的,我们要先加入一个子控件。

问题2:设置了布局,将按钮控件加入布局后,按钮变得非常长,显得很丑,怎么办?

解答:原因是空间利用率不高,控件会自动占满剩余可用控件。这时可以加入 Spacer 控件,因为程序运行时 Spacer 控件是不可见的,所以可以利用它来占满剩余的可用控件 。

技巧

1. Spacer

当界面空间利用度不高时,可以利用 Spacer 占满剩余空间,这可以使得控件大小不会变得非常大

2. Layout

Layout 布局不属于 Widget 组件,无法设置样式。这个时候可以将 Layout 转成 QWidet 之类的组件实现进一步的操作。

所以我们在设计ui界面的时候,尽量使用父控件的布局,而不要单独使用布局。

3. 选中并复制控件

选中控件

方法一:点击对象检测器中的对象,可以按住ctrl同时选中多个

在这里插入图片描述

方法二:本来用鼠标左键在空白区域拖拽,可以框选大量组件。但是组件比较多的话,没有空白区域,则可以用鼠标中键触发框选。

复制控件

按住ctrl键,然后鼠标左键拉动选中的控件即可实现复制

4. 快捷键

  • ctrl+R:预览界面

Designer+资源系统

注意:以下的删除操作只是从Qt资源系统删除,并不会删除磁盘里的文件

点击右下角的“笔”可以编辑资源(即创建qrc文件并声明资源)

在这里插入图片描述

点击之后,出现如下界面

在这里插入图片描述

点击新建资源文件后,会让你选择资源文件的存储目录并输入qrc文件名

在这里插入图片描述

添加前缀后(相当于虚拟目录),即可在前缀下添加资源文件

在这里插入图片描述

要使用 Qt 的 qrc 资源文件需要将资源编译为 Python 代码

pyside6-rcc res.qrc -o res_qrc.py 

编译完成后,即使资源文件从电脑磁盘里删除,程序依然可以使用资源

### 如何使用 PySide6Designer 工具 #### 安装依赖 为了能够正常使用 Qt DesignerPySide6,需要先安装必要的工具包。可以通过 `pip` 命令来完成这些操作: ```bash pip install pyside6 ``` 如果需要额外的功能支持(比如 UI 文件转换),可以进一步确认是否已经安装了完整的开发环境。 --- #### 启动 Qt Designer PySide6 并不自带独立的 Qt Designer 应用程序,而是通过调用系统的 Qt 设计师工具实现界面设计功能。以下是启动方法: 1. **Windows 用户** - 如果已成功安装 PySide6,则可以在命令提示符下输入以下指令以启动 Designer: ```bash pyside6-designer ``` 2. **Linux 或 macOS 用户** - 类似于 Windows,也可以通过终端执行相同的命令: ```bash pyside6-designer ``` 这一命令会自动加载 Qt 提供的设计软件用于 GUI 开发[^1]。 --- #### 创建并保存 `.ui` 文件 在 Designer 中构建好所需的图形化界面之后,记得将最终成果另存为扩展名为 `.ui` 的 XML 文件形式。这种文件本质上是一种描述窗口布局及其组件属性的数据结构。 --- #### 将 `.ui` 转换为 Python 可读代码 正如所提到的内容那样,`.ui` 文件本身无法被直接嵌入到基于 PySide6 构建的应用项目里去运行;因此有必要借助特定脚本把它们编译成对应的 Python 源码版本。具体做法如下所示: 假设有一个叫做 `hello.ui` 的表单文档位于当前工作目录之下,那么只需键入下面这串语句即可生成目标模块——即命名为 `ui_hello.py` 的纯文本脚本: ```bash pyside6-uic hello.ui > ui_hello.py ``` 上述流程实际上完成了从可视化编辑模式向编程逻辑过渡的关键一步[^2]。 --- #### 加载自动生成的类定义至主应用程序框架之中 最后一步就是把这些预处理好的资源集成起来形成完整可用的产品原型。通常情况下我们会新建另一个入口级 python 文件作为整个项目的起点位置,在这里实例化由 designer 自动生成出来的 widget 对象并与事件处理器绑定在一起从而响应用户的交互行为。 例如,假如刚才得到的是 `ui_hello.py` ,那就可以按照这种方式编写 test.py 来测试效果: ```python import sys from PySide6.QtWidgets import QApplication, QMainWindow from ui_hello import Ui_MainWindow # 导入UI类 class MyMainWindow(QMainWindow, Ui_MainWindow): def __init__(self): super().__init__() self.setupUi(self) if __name__ == "__main__": app = QApplication(sys.argv) window = MyMainWindow() window.show() sys.exit(app.exec()) ``` 以上便是利用 PySide6 结合其配套工具链快速搭建跨平台桌面应用的基本思路概述[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值