【PyQt5桌面应用开发】3.Qt Designer快速入门(控件详解)

一、Qt Designer简介

        Qt Designer是PyQt程序UI界面的实现工具,可以帮助我们快速开发 PyQt 程序的速度。它生成的 UI 界面是一个后缀为 .ui 的文件,可以通过 pyiuc 转换为 .py 文件。

        Qt Designer工具使用简单,可以通过拖拽和点击完成复杂界面设计,并且设计完成的.ui程序可以转换成.py文件供python程序调用。本文主要通过用户登录需求描述Qt Designer工具开发界面的使用方法。

二、界面介绍

        如下图所示是Qt designer的一个标准界面。

  1. 导航栏包括文件操作(新建、导入、保存等)、窗体(预览窗口3中的UI效果)、视图(显示or关闭各种模块窗口2~6)、设置(各种页面属性设置)等。其中最为常用且重要的是文件和窗体,选择窗体→ \rightarrow→预览(或者快捷键Ctrl+R)可以看到UI的实际运行效果。视图保持默认的全部开启即可。
  2. Widget Box(部件盒):Widget Box位于Qt Designer界面的左侧,它提供了各种可用的窗口部件(widgets)。可以从Widget Box中拖放这些部件到主界面编辑区域,以构建GUI界面。Widget Box中的部件包括按钮、标签、文本框、下拉列表等。
    1. Form Editor(表单编辑器):Form Editor是Qt Designer界面的主要编辑区域,位于中央部分。在表单编辑器中,可以拖放部件到界面上,调整它们的位置和大小,并设置它们的属性和布局。可以使用表单编辑器创建和修改GUI界面的布局,如添加布局管理器、设置部件的位置和大小等。换句话说就是你设计UI的地方。
  3. Object Inspector(对象检查器):Object Inspector位于Qt Designer界面的右侧,它显示了当前选中部件的属性和布局信息。可以使用对象检查器来查看和修改部件的属性,如文本、字体、大小等。它还允许设置部件的布局属性,如位置、大小、对齐方式等。
  4. Property Editor(属性编辑器):Property Editor位于Qt Designer界面的右方中部,默认显示在对象检查器下方。它提供了一个表格视图,显示了当前选中部件的属性列表。可以使用属性编辑器来直接编辑和修改部件的属性值。通过双击属性值可以进行编辑或选择合适的值。
  5. 窗口6包含3个模块:
  • Resource Browser(资源浏览器):资源浏览器是一个用于管理和引用资源文件的功能模块。资源文件可以包含图像、字体、样式表等应用程序所需的各种资源。资源浏览器提供了一种方便的方式来添加、编辑和使用这些资源。
  • Signal/Slot Editor(信号/槽编辑器):Signal/Slot Editor位于Qt Designer界面的底部,通常与属性编辑器一起显示。它提供了一个图形界面,用于管理和连接部件之间的信号和槽。通过信号/槽编辑器,可以将部件的信号与其他部件的槽函数进行连接,以实现交互和事件处理。
  • Action Editor(动作编辑器):Action Editor是Qt Designer中的一个独立模块,用于管理和配置菜单栏、工具栏和上下文菜单中的动作(actions)。通过动作编辑器,可以添加、修改和删除各种动作,并为它们设置相应的属性和快捷键。

三、基本控件介绍

1、Layouts(布局)

        Widget Box中的Layouts(布局)组件提供了一种方便的方式来管理部件的位置和大小,以及定义它们之间的关系。这些布局部件可以帮助您创建自适应和灵活的GUI界面。以下是Widget Box中常见的布局组件及其功能介绍:

        QVBoxLayout(垂直布局):VBox Layout按垂直方向排列其子部件。它们会根据容器的大小自动调整子部件的大小和位置。可以向垂直布局添加部件,并控制它们的对齐方式、间距等属性。

        QHBoxLayout(水平布局):HBox Layout按水平方向排列其子部件。类似于垂直布局,它们会根据容器的大小自动调整子部件的大小和位置。可以向水平布局添加部件,并控制它们的对齐方式、间距等属性。

        QGridLayout(网格布局):Grid Layout将部件排列为网格状结构,可以在行和列中进行布局。可以指定部件的位置,并控制它们在网格中的大小和间距。

        QFormLayout(表单布局):Form Layout适用于创建表单样式的界面,其中包含标签和对应的输入部件。它将标签和部件配对,并按照列的方式进行布局。可以控制标签和部件的对齐方式、间距等属性。

2、 Spacers(间隔器)

        

        在Widget Box中,Spacers(间隔器)是一组组件,用于在布局中创建空白空间,以调整部件之间的距离和位置。它们有助于实现灵活的界面布局。以下是Widget Box中Spacer组件及其功能介绍:

        QSpacer:QSpacer是一个简化的间隔器部件,它可以直接添加到布局中。它可以在垂直布局、水平布局或网格布局中创建空白空间。可以调整QSpacer的大小和属性,以满足您的布局需求。包括:Horizontal Spacer & Vertical Spacer。

3、Item Views(项视图)

        Widget Box中的Item Views(项视图)组件提供了用于显示和编辑结构化数据的部件,例如表格、树状结构和列表。这些组件提供了丰富的功能和灵活的选项,以满足各种数据展示和交互需求。以下是Widget Box中常见的Item Views组件及其功能介绍:

        QListWidget(列表视图):QListWidget是一个用于显示和编辑简单列表数据的部件。它以列表形式呈现数据,并支持单选和多选模式。可以添加、删除和编辑列表项,并设置其图标、文本等属性。

        QTreeView(树视图):QTreeView是一个用于显示和编辑树状结构数据的部件。它以层次结构形式展示数据,并可展开和折叠节点。可以通过设置模型和委托来自定义树视图的外观和行为。

        QTableView(表格视图):QTableView是一个用于显示和编辑二维表格数据的部件。它以表格形式呈现数据,并提供了各种功能,如排序、编辑、选择、拖放等。可以通过设置模型和委托来自定义表格的外观和行为。

        QColumnView(列视图):QColumnView是一个用于显示和编辑多列数据的部件。它以列的形式展示数据,并允许用户在列之间进行导航和选择。可以设置列视图的模型和委托来自定义其外观和行为。

4、Item Widgets(项部件)

        在Widget Box中,Item Widgets(项部件)是一组用于在Item Views组件中显示和编辑数据的部件。与Item Views类似。

5、Containers(容器)

        

        容器部件(container widget)在窗体中提供更高级的对象分组控制。它们可以作为多种用途使用,诸如管理输入部件(input widgets)、提供分页和选项卡布局、又或者仅仅作为其它对象的装饰性容器等等。以下是常见的Containers组件及其功能介绍:

        Group Box (组框):组框的主要应用场景就是将复选框和单选按钮等作为一个集合有机的进行分组。每个组框都有自己的布局,尤其当其包含部件时,布局是必需有的。同日常的布局操作一样,对组框的布局操作也没有什么特别的,只需要在其内部右键操作布局即可。

        Scroll Area(滚动区域):提供了在有限空间内显示大量内容的功能。当内容超过Scroll Area的可见区域时,它会自动添加滚动条,以便用户可以滚动查看内容,例如文本、图像、部件等。

        Tool Box(工具箱) :可以理解为,工具箱有很多抽屉,每次只能打开一个,抽屉里可以放很各种各样的东西,例如QQ的好友分组,每个分组下有不同数目的联系人。点击不同抽屉时,会触发currentChanged信号。

        Tab Widget(多页面切换):可以实现在同一区域中自由切换不同页面的内容,该控件是一个容器类控件,并提供友好的页面切换方式。

        Stacked Widget(层叠窗口/堆栈窗口):多界面切换。可以填充一些小控件,但是同一时间只有一个小控件可以显示。QStackedWidget控件不能在页面之间进行切换,它与当前选中的QListWidget控件中的选项进行连接currentRowChanged信号。

        Frame(框架):控制一些边框的样式,凸起,凹下,阴影等。

        Widge:组件,主窗体容器。

        MDI Area:可以同时显示多个文档的区域。

        Dock Widget(浮动窗口):它是放置在QMainWindow中的中央窗口小部件周围的停靠窗口小部件区域中的次要窗口。QDockWidget由一个标题栏和内容区域组成。标题栏显示浮动窗口小部件窗口标题,浮动按钮和关闭按钮。

6、 Input Widgets

       

         Widget Box中的Input Widgets(输入部件)提供了多种用于用户输入数据的部件。以下是这些组件的详细功能介绍:

        Combo Box :组合框。是一个集按钮和下拉选项于一体的控件,也称做下拉列表框。

        Font Combo Box :字体组合框。组合框中填充了按字母顺序排列的字体系列名称列表,让用户选择字体。

        Line Edit :单行文本框。

        Text Edit :多行文本框。可显示多行文本内容,当文本内容超出控件显示范围时,可以显示水平和垂直滚动条。

        Plain Text Edit :纯文本框。用于编辑和显示纯文本控件。在默认情况下,一个换行符表示一个段落,文档可以一个或者多个段落组成,且段落中的每个字符都可以有其自己的属性,例如有自己的字体和颜色。

        Spin Box :整型数值计数器。允许用户选择一个整数值通过单击向上向下或者按键盘上的上下键来增加减少当前显示的值,当然用户也可以输入值。

        Double Spin Box :浮点数值计数器。默认精度是两位小数,可以通过setDecimals()来改变。        

        Time Edit :时间编辑。

        Date Edit :日期编辑。

        Date/Time Edit :时间/日期编辑。

        Dial :圆表盘控件。例如汽车仪表盘上的速度计,就是一个圆表盘。

        Horizontal Scroll Bar :水平滚动条。

        Vertical Scroll Bar :垂直滚动条。

        Key Sequence Edit :用于输入快捷键序列的控件。

7、Display Widgets        

        Widget Box中的Display Widgets(显示部件)用于在应用程序中显示和展示数据或信息。以下是这些组件的详细功能介绍:

        Label : 标签。QLabel用于在应用程序中显示文本或图像。它可以显示静态文本、富文本或图像,并且支持自动换行、对齐和格式化等功能。

        Text Browser : 文本浏览框。QTextBrowser用于在应用程序中显示多行文本或富文本。它提供了一个只读的多行文本显示区域,支持显示和浏览大段文本、富文本或超链接等。

        Graphics View : 用于显示QGraphicsScene场景的部件,可用来显示图片。QGraphicsView框架主要包含三个主要的类QGraphicsScene(场景)、QGraphicsView(视图)、QGraphicsItem(图元)。

        Calendar Widget : 日历小部件。是一个设置日历的控件,它提供了一个基于月份的视图,允许用户通过鼠标和键盘选择日期,默认是选中今天,可以对日期的范围进行限制。

        LCD Number : LCD屏部件,显示LCD样式的数字。

        Progress Bar : 进度条,其实就是滑块,可以设置其最小值、最大值、当前值,也可以设置其方向,如横向或者竖向。

        Horizontal Line : 水平线。

        Vertical Line : 垂直线。

        OpenGL Widget : 是一个OpenGL(Open Graphics Library,开放图形库)图形渲染的部件,可以在PyQt和Qt的应用中显示图形(包括2D和3D图形),在Designer中,该部件没有任何独有属性,都是继承的QWidget的属性。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux安装Mysql设置自启动失败,bugFailed to execute operation: No such file or directory

bug: [rootlocalhost mysql-5.7]# systemctl enable mysql.service Failed to execute operation: No such file or directory 出现bug原因: ①CentOS7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和…

Python 程序基础

计算机组成原理 计算机组成 计算机硬件通常由以下几部分组成: 中央处理器(CPU):负责执行计算机指令,完成各种计算和逻辑操作。存储器(Memory):用于存储计算机执行程序所需的数据和…

STM32单片机基本原理与应用(九)

SDIO/SD卡实验 实验内容 将SD卡插入实训平台并烧写程序,开机后TFTLCD屏幕上会显示是否成功初始化SD卡并显示SD卡容量。 电路原理图 实验原理 SD卡的通信方式有两种:SPI和SDIO。SD卡有五种寄存器,如下表 SD 卡的指令由 6 个字节组成&…

定时执行专家 - 扩展功能详解(109个Nircmd命令、无限扩展的脚本功能)

目录 ◆ 109个Nircmd命令 ▼ 如何使用109个Nircmd ▼ 关于Nircmd ◆ 无限扩展的脚本 ▼ VBS脚本 ▼ BAT脚本 ◆ 关于软件的安装使用说明 ▼软件介绍▼ ▼定时执行专家 - 详细安装教程▼ ▼定时执行专家 - 自动截屏教程▼ ▼重要提醒:软件安装目录▼ ◆ V…

JWT学习笔记

了解 JWT Token 释义及使用 | Authing 文档 JSON Web Token Introduction - jwt.io JSON Web Token (JWT,RFC 7519 (opens new window)),是为了在网络应用环境间传递声明而执行的一种基于 JSON 的开放标准((RFC 7519)。该 token 被设计为紧凑…

微服务基础环境搭建

一.创建父工程 用于聚合其他微服务模块 1 新建 Maven 项目 JDK8Maven 项目Web 2 项目设置 编码的选择 UTF8JDK 版本的选择 3 删除 src 目录 4 配置父级 pom.xml SpringBoot:模块探究之spring-boot-dependencies-CSDN博客 子模块能够依赖当前父级 pom.xml 配置 【My…

数据结构-Queue队列

一,队列的简单认识 队列也是一种线性数据结构,与栈不同的是,它只能从一端添加元素,从另一端取出元素.定义了一端,另一端也就确定了. (当然还有一个特殊的双向队列LinkedList除外,它既可以从队首添加元素,也可以移除元素,队尾也是一样的,既可以添加元素,也可以移除元素) 二,队…

有哪些副业渠道?

夸克网盘这个软件出来好久了,官方前不久才开通了推广渠道,这就给了我们以此赚钱的机会。具体时间应该是在2022年12月份。 所谓夸克网盘拉新,就是夸克网盘为了抢占市场,与其他网盘竞争对手(百度网盘、迅雷网盘等&#…

一键生成请求方法的工具 —— OpenAPI Typescript Codegen

文章目录 用法自定义请求参数的方法1)使用代码生成器提供的全局参数修改对象2)直接定义 axios 请求库的全局参数,比如:全局请求响应拦截器 报错解决 用法 首先下载axios npm install axios官网:https://github.com/f…

Centos中安装Docker及Docker的使用

在centos7系统中安装指定版本的docker,并通过docker使用安装mysql为例,阐述docker的使用。 2.1、Docker卸载及安装yum依赖 【卸载Docker,如果安装的Docker的版本不合适】 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-…

Kafka之Producer源码

Producer源码解读 在 Kafka 中, 我们把产生消息的一方称为 Producer 即 生产者, 它是 Kafka 的核心组件之一, 也是消息的来源所在。它的主要功能是将客户端的请求打包封装发送到 kafka 集群的某个 Topic 的某个分区上。那么这些生产者产生的消息是怎么传到 Kafka 服务端的呢&a…

常用路径规划算法简介及python程序

目录 1、前言2、D*算法2.1简介2.2优缺点2.2.1 优点2.2.2 缺点 2.3 python程序 3、A*算法3.1 优缺点:3.1.1 优点:3.1.2 缺点: 3.2 python程序 4、人工势场算法4.1优缺点4.1.1优点:4.1.2缺点: 4.2 python程序 5、Dijkstr…

BeautifulSoup+xpath+re+css简单复习+新的scrapy的学习

1.BeautifulSoupsoup BeautifulSoup(html,html.parser)all_icosoup.find(class_"DivTable") 2.xpath trs resp.xpath("//tbody[idcpdata]/tr") hong tr.xpath("./td[classchartball01 or classchartball20]/text()").extract() 这个意思是找…

今日早报 每日精选15条新闻简报 每天一分钟 知晓天下事 2月26日,星期一

每天一分钟,知晓天下事! 2024年2月26日 星期一 农历正月十七 1、 气象台:3月初之前南方大部将维持阴雨雪天气。 2、 据海关统计,京津冀协同发展十年成效显著,外贸总量跨两个万亿台阶。 3、 2024年研考初试成绩今天起…

【数据库】MySQL视图 | 用户管理

文章目录 1 :peach:视图:peach:1.1 :apple:基本使用:apple:1.1.1 :lemon:创建视图:lemon:1.1.2 :lemon:案例:lemon:1.1.3 :lemon:删除视图:lemon: 1.2 :apple:视图规则和限制:apple: 2 :peach:用户管理:peach:2.1 :apple:用户信息:apple:2.2 :apple:创建用户:apple:2.3 :apple:…

国企行政题库--校园招聘

国企行政题库是为准备参加国有企业行政类岗位校园招聘的应聘者提供的一套专门准备的试题资料。国有企业在中国经济中扮演着重要的角色,其行政类岗位需求量大,竞争激烈。通过系统学习和准备国企行政题库,将有助于应聘者更好地了解国企行政类岗…

解析OOM的三大场景,原因及实战解决方案

目录 一、什么是OOM 二、堆内存溢出(Heap OOM) 三、方法区内存溢出(Metaspace OOM) 四、栈内存溢出(Stack OOM) 一、什么是OOM OOM 是 Out Of Memory 的缩写,意思是内存耗尽。在计算机领域…

Centos服务器部署前后端项目

目录 准备工作1. 准备传输软件2. 连接服务器 部署Mysql1.下载Mysql(Linux版本)2. 解压3. 修改配置4. 启动服务另一种方法Docker 部署后端1. 在项目根目录中创建Dockerfile文件写入2. 启动 部署前端1. 在项目根目录中创建Dockerfile文件写入2. 启动 准备工作 1. 准备传输软件 …

QEMU源码全解析 —— virtio(24)

接前一篇文章: 上回书讲解了virtioballoon_probe函数及其中的两个重要函数init_vqs()和virtio_device_ready(),解析了init_vqs函数的前两步,本回继续解析该函数, (3)init_vqs函数在经过了对于各feature的初…

【电机仿真】HFI算法脉振高频电压信号注入观测器-PMSM无感FOC控制

【电机仿真】HFI算法脉振高频电压信号注入观测器-PMSM无感FOC控制 文章目录 前言一、脉振高频电压注入法简介(注入在旋转坐标系的d轴)1.旋转高频电压(电流)注入法2.脉振高频电压注入法 二、高频注入理论1.永磁同步电机的高频模型2…