python之pyqt专栏3-QT Designer
从前面两篇文章python之pyqt专栏1-环境搭建与python之pyqt专栏2-项目文件解析,我们对QT Designer有基础的认识。
QT Designer用来创建UI界面,保存的文件是"xxx.ui"文件,"xxx.ui"可以被pyuic转换为"xxx.py",而"xxx.py"里面会一个类,类中有两个函数 setupUi() 和 retranslateUi()函数,setupUi() 函数里面是UI界面的py代码;而retranslateUi()则是程序国际化有关,在不同的国家自动转换为不同国家的语言文字。
创建窗体
打开QT Designer会出现以下的界面,在下图中红色框为三种Dialog为Dialog窗体,此外还有两种窗体分别是Main Window和Widget。

在PyQt中,Widget、MainWindow、和Dialog是三种常见的窗体类型,它们都是用来创建图形用户界面(GUI)的。它们分别对应于Qt库中的QWidget、QMainWindow、和QDialog类。每一个都有自己的用途和特点:
Widget:这是最基础的窗体类型,通常作为一个基本的容器来使用。你可以在这个窗体上添加各种控件(如按钮、文本框等)。但是,Widget本身并不提供菜单栏、工具栏或状态栏等功能。如果你需要这些功能,就需要自己手动添加。
MainWindow:这是一个提供了更完整功能的窗体类型,它默认包含了菜单栏、工具栏、状态栏等。通常用于创建应用程序的主窗口。MainWindow可以被视为一个顶级的窗口,通常包含了应用程序的主要功能。
Dialog:这是一种特殊的窗体,通常用于执行一个特定的任务,然后关闭。例如,打开一个文件选择对话框,或者显示一个警告消息。Dialog通常模态的(modal),即当Dialog打开时,用户不能操作其它的窗口,直到这个Dialog关闭。
非常有意思的是, QWidget继承QObject,而QMainWindow 和QDialog,都继承于QWidget。


Qt Designer 界面
1.部件盒
部件盒是QT Designer中的一个面板,其中包含了各种可供拖拽到设计窗口中的UI部件。这些部件包括按钮、文本框、标签、图像框等常见的用户界面元素。通过从部件盒中拖拽部件到设计窗口中,可以轻松地创建和布局用户界面。
2.主窗口
主窗口是QT Designer的主要工作区域,用于设计和编辑用户界面的布局和外观。在主窗口中,你可以放置和排列各种UI部件,调整它们的属性和样式,以及设置布局约束和空间分布。主窗口提供了一个实时的预览,让你可以直观地看到你设计的用户界面。
3.对象检查器
对象检查器是QT Designer中的一个面板,显示当前设计窗口中的UI部件的对象层次结构。通过对象检查器,你可以选择、查看和编辑UI部件的属性和信号槽连接。你可以使用对象检查器来浏览UI部件的层次结构,并修改它们的名称、对象类型和其他相关属性。
4.属性检查器
属性检查器是QT Designer中的另一个面板,用于查看和编辑选定UI部件的属性。当你选择一个UI部件时,属性检查器会显示该部件的各种属性,如位置、大小、颜色、字体等。你可以通过属性检查器直接修改这些属性,以改变部件的外观和行为。
5.信号/槽编辑器,动作编辑器,资源浏览器
信号/槽编辑器用于管理界面中的信号和槽。在QT中,信号和槽是一种通信机制,当某个特定事件(信号)发生时,会触发相应的处理函数(槽)。信号/槽编辑器可以帮助你查看、添加或修改这些连接。
动作编辑器用于创建和管理动作。动作是QT中的一种抽象用户界面元素,它可以关联到一个或多个槽函数,用于响应用户的某种操作。
资源浏览器用于管理和浏览项目资源的工具。你可以通过它来添加、删除或修改项目中的各种资源,例如图像、翻译文件等。

部件盒
在Qt Designer左侧部件框中,有8类部件,这些部件都可以通过按住鼠标左键不动,拖拽进UI设计界面

Layouts(布局):布局用于管理窗口或容器中的部件的位置和大小。Qt Designer提供了几种布局,如垂直布局(QVBoxLayout)、水平布局(QHBoxLayout)和网格布局(QGridLayout)。布局确保部件在调整窗口大小时能够自适应,并保持整洁的外观。
Spacers(间隔器):间隔器是一种特殊的部件,用于在布局中创建空间。它们可用于调整部件之间的间距,确保布局看起来整齐且平衡。Qt Designer中的水平和垂直间隔器可帮助您在水平和垂直方向上创建间距。
Buttons(按钮):按钮是图形用户界面中常见的交互元素。Qt Designer提供了各种按钮控件,如QPushButton、QToolButton等。这些按钮可用于触发操作、响应用户点击等。您可以为按钮设置图标、文本和点击事件处理程序等。
Item Views(项视图):项视图是用于显示和编辑数据集合的部件。Qt Designer提供了几种项视图,如QTableView、QListView和QTreeView。这些视图可用于以表格、列表或树形结构的形式展示数据,并提供了对数据进行排序、筛选和编辑的功能。
Item Widgets(项部件):项部件是用于项视图中的单个项目的表示。它们代表了视图中的单个数据项,并提供了渲染和编辑数据的方式。例如,QTableWidgetItem是用于QTableView中的表格项的部件,可以在其中设置数据、文本和图标等。
Containers(容器):容器是用于组织和包含其他部件的元素。它们提供了对子部件的布局、管理和控制功能。Qt Designer中的常见容器包括QWidget、QMainWindow和QDialog等。容器可以嵌套使用,以实现复杂的界面结构和布局需求。
Input Widgets(输入部件):输入部件用于接收用户输入的数据。Qt Designer提供了各种输入部件,如QLineEdit(单行文本输入框)、QSpinBox(数值调节框)等。这些部件可用于获取用户的文本、数值和其他类型的数据输入。
Display Widgets(显示部件):显示部件用于在界面中显示信息,而不直接接收用户输入。它们可以用于展示文本、图像、图表等内容。Qt Designer中的常见显示部件包括QLabel(标签)、QGraphicsView(图形视图)等。这些部件可以根据需要显示各种类型的内容,并提供样式、格式和渲染选项的自定义功能。
对象检查器
对象检查器左侧是对象,右侧是类
当向主窗口(UI编辑区)添加一个Widget时。就会看到对象检查器中多处了一个Widget的对象,它的对象名Widget是而类名是QWidget

当我们再添加一个按钮时,就会看到对象检查器中多处了一个button的对象,它的对象名是pushbutton而类名为QPushbutton。

当我们将按钮拖进widget中,对象检查器发生变化,button对象会跑到Widget对象下面,被Widget所包含。
对象检查器,主要功能显示当前设计窗口中的UI部件的对象层次结构

对象检查器的另一个功能编辑对象名称,这个名称存在“ui”转成“.py”



对象检查器
通过点击下拉箭头,可以看到对象的属性。 左侧是属性而右侧是值

点击值可以对属性进行修改。


相关文章:
python之pyqt专栏3-QT Designer
从前面两篇文章python之pyqt专栏1-环境搭建与python之pyqt专栏2-项目文件解析,我们对QT Designer有基础的认识。 QT Designer用来创建UI界面,保存的文件是"xxx.ui"文件,"xxx.ui"可以被pyuic转换为"xxx.py",而&…...
【鸿蒙应用ArkTS开发系列】- 云开发入门实战二 实现省市地区三级联动地址选择器组件(下)
文章目录 概述端云调用流程端侧集成AGC SDK端侧省市地区联动的地址选择器组件开发创建省市数据模型创建省市地区视图UI子组件创建页面UI视图Page文件 打包测试总结 概述 我们在前面的课程,对云开发的入门做了介绍,以及使用一个省市地区联动的地址选择器…...
HCIA题目解析(1)
1、【多选题】关于动态 MAC 地址表说法正确的是? A、通过报文中的源MAC地址学习获得的动态MAC表项会老化 B、通过查看指定动态MAC地址表项的个数,可以获取接口下通信的用户数 C、在设备重启后,之前的动态表项会丢失 D、在设备重启后&…...
运维高级-day02
一、编写系统服务启动脚本 RHEL6风格 1、Linux运行级别 Linux运行有七个级别 级别 描述 0 停机状态,系统默认运行级别不能设置为0,否则系统不能正常启动。使用init0命令,可关闭系统 1 单用户状态,此状态仅root用户可登录。用…...
虹科分享 | 平衡速度和优先级:为多样化的实时需求打造嵌入式网络(2)——实时通信系统的需求
现代实时应用的复杂性和需求不断增加,需要强大而可靠的通信系统。正如本系列第一部分所述,这些应用涵盖从秒到毫秒的广泛响应时间要求,它们的成功通常取决于其响应的精确时间。因此,所选的通信系统必须能够满足这些严格的时序限制…...
佳易王各行业收银管理系统软件,企业ERP管理软件,企业或个体定制开发软件以及软件教程资源下载总目录,持续更新,可关注收藏查阅
系统简介 1、佳易王软件功能实用、操作简单、软件绿色免安装,解压即可使用,软件已经内置数据库,不需再安装其他数据库文件。 2、佳易王软件,已经形成系列,上百款管理系统软件涵盖多个行业。 3、已为多个企业个体定制…...
C_4练习题
一、单项选择题(本大题共20小题,每小题2分,共40分。在每小题给出的四个备选项中选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。) 定义如下变量和数组: int i; int x[3][3]{1,2,3,4,5,6,7,8,9}; 则下面语句的输…...
自动化测试-Selenium
一. Selenium介绍 selenium 是用来做web自动化测试的框架,支持各种浏览器,各种,支持各种语言 原理: 二. 元素定位 2.1 XPath 定位 绝对路径: /html/head/title 相对路径以双斜杠开头,常见的相对路径定位有以下几种: <1>相对路径索引: 索引是从1开始的 <2>相…...
基于单片机的温湿度检测系统设计
目录 摘 要... 2 第一章 绪论... 5 1.1 研究课题背景... 5 1.2 国内外发展概况... 7 1.3 课题研究的目的... 8 1.4 课题的研究内容及章节安排... 8 第二章 温湿度检测系统控制系统的设计方案... 10 2.1 设计任务及要求... 10 2.2 温湿度检测系统总体设计方…...
C# 关于异常处理 try-catch语句的使用
在实际应用中,比如涉及文件读写、网络通信时,会因为文件不存在、权限不够、网络异常等原因引发异常,或者对数据库连接、查询、更新等操作,会因为连接超时、语法错误、唯一约束冲突等引发异常。 看过去的代码,当进行上…...
【LeeCode】26.删除有序数组中的重复项
给你一个 非严格递增排列 的数组 nums ,请你原地删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的数量为 k ,你需…...
4-Docker命令之docker create
1.docker create介绍 docker create命令是用于创建一个新的容器,等价于docker run -d命令,但是与docker run -d不同的是,docker create创建的容器并未实际启动,需要指定docker start命令启动。 2.docker create用法 docker create [参数] [root@centos79 ~]# docker cr…...
leetcode每日一题33
86.分隔链表 因为对链表中的一个节点进行更换位置的操作需要知道该节点的上一个节点 所以建立一个虚拟头节点 ListNode* pnew ListNode(-201,head);根据题意,我们需要找到第一个大于x或等于x的节点large 并且将第一个大于或等于x的节点large后的所有小于x的节点都…...
性能测试【一】:Jmeter的常用操作
性能测试【一】:Jmeter的常用操作 一、使用命令行方式运行Jmeter1、为什么2、怎么用3、示例4、结果文件 二、生成动态报告1、准备2、命令3、报告示例4、报告释义 三、使用问题汇总 推荐使用命令行运行,GUI方式会经常卡死,尤其跑稳定性 一、使…...
【JAVA】SpringBoot + mongodb 分页、排序、动态多条件查询及事务处理
【JAVA】SpringBoot mongodb 分页、排序、动态多条件查询及事务处理 1.引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- mongodb ↓ -->&…...
nrm安装及使用
一、介绍 nrm 是一个 Node.js 的 registry 管理工具,它允许你快速地在不同的 npm registry 之间进行切换。通过使用 nrm,你可以方便地将 npm 的 registry 切换为淘宝镜像、npm 官方镜像或者其他定制的镜像,以加快包的下载速度。nrm仓库请点击…...
docker报错standard init linux.go:228 exec user process caused: exec format error
1、报错 使用Dockerfile自己做的服务镜像,docker run时启动失败,报错如下: standard init linux.go:228 exec user process caused: exec format error2、原因一 当前服务器的CPU架构和构建镜像时的CPU架构不兼容。比如做镜像是在arm机器下…...
Docker 的基本概念和优势,以及在应用程序开发中的实际应用。
Docker 是一种容器化技术,它将一个应用程序及其所有依赖项打包在一起,形成一个独立的、可移植的容器。这个容器可以在任何支持 Docker 的操作系统上运行,而且具有很好的可移植性和可扩展性。以下是 Docker 的基本概念和优势: 镜像…...
libmosquitto库的一个bug,任务消息id(mid)分配后不起作用
代码如图所示: 当订阅了所有主题后,每个主题的mid是他们的下标索引加100的数字,可是实际打印出来的值是: mid依然是1,2,这个参数在这里失效了,不知道是bug还是mqtt的什么机制?...
亚马逊云科技re:Invent大会:云计算与生成式AI共筑科技新局面,携手构建未来
随着科技的飞速发展,云计算和生成式 AI 已经成为了推动科技进步的重要力量。这两者相互结合,正在为我们创造一个全新的科技局面。 亚马逊云科技的re:Invent大会再次证明了云计算和生成式AI的强大结合正在塑造科技的新未来。这次大会聚焦了云计算的前沿技…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...
