第三节_PySide6中Qt Designer 的基础使用_上篇

文章目录

  • 前言
  • 一、Qt Designer简介
    • 1.什么是 Qt Designer?
    • 2.核心功能
    • 3.核心优势
  • 二、Qt Designer界面介绍
    • 1.主窗口的创建
    • 2.窗口五大区域的简单介绍
  • 三、界面布局 Layout
    • 1.窗口布局方式介绍
    • 2.UI布局技巧概述
    • 3.UI布局实战应用
  • 总结


前言

第二节_PySide6项目创建流程介绍、手把手教学打包EXE可执行文件 详细介绍了PySide6项目的创建和exe可执行文件的打包;本节介绍如何快速入门,简单来说就是如何通过拖曳鼠标等可视化操作创建一个 UI 程序,达到快速入门的目的。
即主要讲解使用 Qt Designer(PySide6-Designer工具) 来制作 UI 界面,需要注意的是创建 UI 程序,可以通过 UI 工具和编写纯代码两种方式来实现,各有优势。


一、Qt Designer简介

1.什么是 Qt Designer?

Qt Designer 是 Qt 框架官方提供的 可视化界面设计工具,专为快速构建 GUI 应用程序而生。作为 PySide6(Qt 的 Python 绑定)的核心配套工具,它允许开发者通过拖拽组件的方式设计窗口、对话框等界面元素,无需手动编写布局代码,大幅提升开发效率。

2.核心功能

1)拖拽式设计:提供按钮、文本框、表格等 200+ 预制 Qt 控件,直接拖拽到画布;

2)实时预览:支持切换不同主题(如 Windows、Fusion)查看界面效果;

3)属性编辑器:精细调整控件尺寸、样式、字体、事件等属性;

4)信号与槽连接:可视化绑定控件事件与业务逻辑(需结合代码实现);

5)资源管理:集成图片、图标等资源到 .qrc 文件,避免路径依赖;

6)多语言支持:为国际化(i18n)生成翻译模板文件(.ts)。

3.核心优势

优势说明
开发效率提升复杂布局秒级完成,告别手写 QHBoxLayout 和 QVBoxLayout 代码
设计代码分离通过 .ui 文件隔离界面与逻辑,便于团队协作和后期维护
跨平台一致性生成的界面自动适配 Windows/macOS/Linux 原生风格
官方维护支持由 Qt 公司持续更新,完美兼容 PySide6 最新版本

二、Qt Designer界面介绍

1.主窗口的创建

在Pycharm的外部工具中点击 PySide6-Designer 工具,会自动弹出 “新建窗体” 对话框,在模板选项中,最常用的就是 Widget(通用窗口)和 Main Window(主窗口);这里我们选择 Main Window 模板,点击 ”创建“ ,并保存并命名为 test002.ui,其主窗口默认添加了菜单栏、工具栏和状态栏:

在这里插入图片描述
在这里插入图片描述

2.窗口五大区域的简单介绍

区域 1 是 Widget Box(工具箱)窗格,其中提供了很多控件,每个控件都有自己的名称,用于提供不同的功能,如常用的按钮、单选按钮、文本框等,可以直接拖曳到主窗口中:

在这里插入图片描述
区域 2 为主窗口,可以将区域 1 的控件拖曳到区域 2 中,在菜单栏中选择“窗体”→“预览”
命令,或者按 Ctrl+R 快捷键,就可以看到窗口的预览效果:

在这里插入图片描述
区域 3 为“对象查看器”面板,可以查看主窗口中放置的对象列表:

在这里插入图片描述
区域 4 是 Qt Designer 的“属性编辑器”面板,其中提供了对窗口、控件、布局的属性编辑功能,
1)sizePolicy:控件大小策略;2)minimumSize:最小宽度和最小高度;3)maximumSize:最大宽度和最大高度等属性对UI界面上排版比较重要,需要多注意下:

在这里插入图片描述
区域 5 是 “信号/槽编辑器” 面板、 “动作编辑器” 面板和“资源浏览器” 面板的集合:
1)在 “信号/槽编辑器” 视图中可以为控件添加自定义的信号与槽函数,以及编辑控件的信号与槽函数;
2)在 “动作编辑器” 视图中可以编辑在菜单栏里添加的各种动作,重新命名、增加图标和添加快捷键等操作;
3)在 “资源浏览器” 视图中创建、增加 .qrc 资源文件,便于其他控件对资源文件的引用。
其中信号/槽使用方式主要还是通过代码操作比较方便,但是 “动作编辑器” 和 “资源浏览器” 在UI工具使用的很多,这两部分需要注意下。

在这里插入图片描述

三、界面布局 Layout

1.窗口布局方式介绍

当主窗口中有很多控件时,为了避免杂乱需要对界面进行排版和布局,这点非常重要。
进行布局一般有两种方式:一是使用布局管理器进行布局;二是使用容器控件进行
布局;由于大体逻辑一致,这边主要对用布局管理器进行布局进行讲解。

在这里插入图片描述

四种窗口布局方式

布局方式说明
Vertical Layout(垂直布局)将控件按 垂直方向(从上到下) 依次排列,适用场景:设置菜单、纵向排列的选项组
Horizontal Layout(水平布局)将控件按 水平方向(从左到右) 依次排列,适用场景:工具栏按钮、水平排列的表单元素
Grid Layout(网格布局)将控件放置在 二维网格的行列交叉点,支持跨行跨列,适用场景:复杂表单、仪表盘、棋盘式布局
Form Layout(表单布局)专门用于 标签-输入框对 的快速布局,自动对齐标签和控件,适用场景:登录窗口、数据录入表单

2.UI布局技巧概述

在进行UI布局之前,需要了解下布局的一些技巧,总体来说是 由内而外,层层递进,后面实战应用中会使用到下述技巧,可以先进行大体理解,然后在UI界面布局时进行相互印证:

1)先不使用任何的布局方式 Layout ,把所有控件 按位置 摆放在界面上;

2)然后先从 最内层开始 进行控件的布局方式 Layout 设定;

3)逐步拓展到 外层 进行控件的布局方式 Layout 设定;

4)最后调整 layout 中控件的大小比例, 优先使用布局方式 Layout的 layoutStrentch 属性来控制。

3.UI布局实战应用

参照第二节_PySide6项目创建流程介绍、手把手教学打包EXE可执行文件的demo例程进行创建Pycharm项目,并命名为PythonDemo002,以下是项目目录结构:

在这里插入图片描述
打开 test002.ui 文件,将所需要的控件 按位置 摆放在界面上,先不进行任何布局,并将每个控件进行命名。如下图所示,全部控件主要分为 9 部分,总体呈垂直分布排列:

在这里插入图片描述
在这里插入图片描述
对第 3 部分 lab_Image 显示图像的控件进行 最小高度 的值设置为 300,避免界面缩放时保持控件的高度;对第 5 部分 PushButton 控件进行 最小尺寸 、最大尺寸和图标尺寸的属性设置为 60,固定图标的大小(btn_4控件放宽了最大宽度的值,为了后续展示网格布局的差异):

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
按住Ctrl按键,然后使用鼠标点击控件,可以实现选中多个控件,然后右键选择布局操作。
1)对第 1 部分进行水平布局;
2)对第 5 部分进行网格布局(注意:网格布局中的“btn_4”控件默认占一个方格,对其进行拉伸就可以占 2个方格);
3)将第 7 部分和第 8 部分合并成一个区域,整体进行水平布局,其中第7 部分遵循布局技巧从 最内层开始 先将 label_3 、btn_OpenCalc 、btn_OpenNote三个控件进行水平布局,再跟TextEdit_1控件进行垂直布局,逐步拓展到 外层 最后跟第 8 部分进行水平布局;
4)最后再将MainWindow进行垂直布局即可,布局结构目录可以在 “对象查看器” 中查看:

在这里插入图片描述
在这里插入图片描述
对布局界面进行一些精细的调整,调整第 1 部分和第 7 部分中控件的大小比例, 优先使用布局方式 Layout的 layoutStrentch 属性来控制,分别调整为:1,6,2 和 2,1,1 比例:

在这里插入图片描述
对第 9 部分 PushButton 控件进行居中处理,需要先在工具栏拖动一个水平布局控件,然后将 PushButton 控件放入水平布局中(注意:如果在界面上无法放进去,可以先在界面上选中水平布局控件,然后将PushButton 控件拖入 “对象查看器” 中所被选中的水平布局控件);最后将 PushButton 控件的 水平策略 设置为 Fixed

在这里插入图片描述
对第 8 部分进行优化,期望 “打开图片消息” label_2 控件能居中,并且 TextEdit_2 控件的上边缘能跟第 7 部分的 TextEdit_1 控件上边缘在同一水平:
1)使 label_2 控件居中可以参照步骤 ⑥ 的用法;
2)使 TextEdit 控件上边缘在同一水平可以通过调整水平布局 horizontalLayout_5 控件 Layout 属性的 LayoutTopMarginLayoutBottomMargin 值可以来调整控件上下间距,这里各设置为 4 (调整控件左右间距可以通过 LayoutLeftMarginLayoutRightMargin ):

在这里插入图片描述
对主窗体 MainWindow 进行风格和样式的设置,通过对 styleSheet 属性指定以下内容就可以对主界面的风格和样式进行改变:

* { \n color: blue ;\n font-size:15px;\n}

在这里插入图片描述

总结

以上就是关于如何通过拖曳鼠标等可视化操作创建一个 UI 程序的详细介绍,主要讲解了 Qt Designer的核心功能和优势,以及UI界面的整体布局,通过实战应用能更快的入门,小伙伴都行动起来操作一下吧!需要明确的是 Qt Designer 符合 MVC(模型—视图—控制器)设计模式,做到了显示和业务逻辑的分离,本节的讲解主要是显示方面,后续会通过对 “信号/槽编辑器” 面板、 “动作编辑器” 面板和“资源浏览器” 面板的介绍来讲解业务逻辑的方面,可参考 第四节_PySide6中Qt Designer 的基础使用_下篇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/bicheng/82584.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

行列式的线性性质(仅限于单一行的加法拆分)

当然可以,以下是经过排版优化后的内容,保持了原始内容不变,仅调整了格式以提升可读性: 行列式的线性性质(加法拆分) 这个性质说的是:如果行列式的某一行(或某一列)的所有…

Git使用说明

配置Git 确定已经安装了Git, 通过以下的命令配置全局的邮箱和用户名 git config --global user.email "your@xx.com" git config --global user.name "yourname" 初始化本地仓库 首先,打开终端并切换到存放你代码的项目目录。接着执行以下命令,将该…

【后端高阶面经:缓存篇】36、如何保证Redis分布式锁的高可用和高性能?

一、分布式锁核心挑战:从单机到分布式的跨越 (一)分布式锁的本质需求 互斥性:同一时刻仅一个客户端持有锁容错性:节点故障时锁仍有效(避免单点)原子性:加锁/释放锁操作原子完成可重入性:支持同一客户端多次获取同一把锁(二)Redis天然优势 单线程模型保证操作原子性…

【后端高阶面经:MongoDB篇】40、怎么优化MongoDB的查询性能?

一、索引优化:构建高效查询的基石 (一)索引类型与适用场景 1. 五大核心索引类型 索引类型适用场景示例代码性能影响单字段索引单条件查询(如用户ID、状态字段)db.users.createIndex({ user_id: 1 })低复合索引多条件…

Linux wget 常用命令详解

目录 1.1 工具定位 基础下载示例 二、高效下载参数详解 2.1 下载控制类 2.2 文件管理类 2.3 网络优化类 三、高级应用场景 3.1 递归下载与整站镜像 3.2 自动化下载实践 3.3 安全下载配置 四、参数速查手册 4.1 常用参数汇总 1.1 工具定位 基础下载语法 wget [选项…

Pytorch中文文本分类

本文为🔗365天深度学习训练营内部文章 原作者:K同学啊 将对中文文本进行分类,示例如下: 文本分类流程图 1.加载数据 import time import pandas as pd import torch from torch.utils.data import DataLoader, random_split impo…

13.「极简」扣子(coze)教程 | 小程序UI设计进阶(三)让界面动起来,实操讲透“聚焦”事件

前一期大师兄介绍了扣子平台组件的两种状态“禁用”和“加载”。这两种方法使控件可以通过简单设置表示出更多的运行状态。今天大师兄将详细介绍控件的一种事件“聚焦”。 扣子(coze)编程 「极简」扣子(coze)教程 | 小程序UI设计进阶 II!让…

剑指offer11_矩阵中的路径

矩阵中的路径 请设计一个函数,用来判断在一个矩阵中是否存在一条路径包含的字符按访问顺序连在一起恰好为给定字符串。 路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。 如…

腾讯2025年校招笔试真题手撕(三)

一、题目 今天正在进行赛车车队选拔,每一辆赛车都有一个不可以改变的速度。现在需要选取速度差距在10以内的车队(车队中速度的最大值减去最小值不大于10),用于迎宾。车队的选拔按照的是人越多越好的原则,给出n辆车的速…

《三维点如何映射到图像像素?——相机投影模型详解》

引言 以三维投影介绍大多比较分散,不少小伙伴再面对诸多的坐标系转换中容易弄混,特别是再写代码的时候可能搞错,所有这篇文章帮大家完整的梳理3D视觉中的投影变换的全流程,一文弄清楚这个过程,帮助大家搞清坐标系转换…

Ini配置文件读写,增加备注功能

1.增加备注项写入 例: #节点备注 [A] #项备注 bbb1 ccc2 [B] bbb1 IniConfig2 ic new IniConfig2(); //首次写入 if (!ic.CanRead()) { ic.AddSectionReMarke("A", "节点备注"); ic.SetValue("A&qu…

OpenHarmony 5.0中状态栏添加以太网状态栏图标以及功能实现

目录 1.前置条件 2.方案 1.前置条件 首先以太网接口是有问题的,如下按照如下流程将以太网接口进行修复 OpenHarmony 以太网卡热插拔事件接口无效-CSDN博客 然后上述的接口可以了就可以通过这个接口获取以太网是否连接状态 要注意wifi连接的干扰和预置虚拟网口干扰 2.方案…

RNN GRU LSTM 模型理解

一、RNN 1. 在RNN中, 2. RNN是一个序列模型,与非序列模型不同,序列中的元素互相影响: 是由 计算得来的。 在前向传播中: 用于计算 和 用于计算 和 因此,当进行反向链式法则求导时候&#xf…

多路径传输(比如 MPTCP)控制实时突发

实时突发很难控制,因为 “实时” 和 “突发” 相互斥。实时要求避免排队,而突发必然要排队,最终的解决方案都指向找一个公说公有理,婆说婆有理的中间点,这并没解决问题,只是权衡了问题。 这种局部解决问题的…

函数式编程思想详解

函数式编程思想详解 1. 核心概念 不可变数据 (Immutable Data) 数据一旦创建,不可修改。任何操作均生成新数据,而非修改原数据。 优点:避免副作用,提升并发安全,简化调试。 Java实现:使用final字段、不可变…

iOS 主要版本发布历史

截至 2025 年 5 月,iOS 的最新正式版本是 iOS 18,于 2024 年 9 月 16 日 正式发布。此前的 iOS 17 于 2023 年 9 月 18 日 发布,并在 2024 年被 iOS 18 取代。(维基百科) 📱 iOS 主要版本发布历史 以下是 iOS 各主要版本的发布日…

矩阵详解:线性代数在AI大模型中的核心支柱

🧑 博主简介:CSDN博客专家、CSDN平台优质创作者,高级开发工程师,数学专业,10年以上C/C, C#, Java等多种编程语言开发经验,拥有高级工程师证书;擅长C/C、C#等开发语言,熟悉Java常用开…

基于51单片机和8X8点阵屏、独立按键的飞行躲闪类小游戏

目录 系列文章目录前言一、效果展示二、原理分析三、各模块代码1、8X8点阵屏2、独立按键3、定时器04、定时器1 四、主函数总结 系列文章目录 前言 用的是普中A2开发板。 【单片机】STC89C52RC 【频率】12T11.0592MHz 【外设】8X8点阵屏、独立按键 效果查看/操作演示&#xff…

区块链可投会议CCF C--APSEC 2025 截止7.13 附录用率

Conference:32nd Asia-Pacific Software Engineering Conference (APSEC 2025) CCF level:CCF C Categories:软件工程/系统软件/程序设计语言 Year:2025 Conference time:December 2-5, 2025 in Macao SAR, China …

pdf图片导出(Visio\Origin\PPT)

一、Visio 导入pdf格式图片 1. 设计->大小,适应绘图。 2. 文件->导出,导出为pdf格式。 上面两部即可得到只包含图的部分的pdf格式。 如果出现的有默认白边,可以通过以下方式设置: 1. 文件->选项->自定义功能区->…