在使用Qt Designer进行GUI设计时,一般常规的步骤都是差不多的,主要步骤包括新建显示窗口、在窗口上按照规划的布局放置组件、设置初始化组件的属性、定义信号和槽函数的连接,一般后三步是每增加一个组件就执行一轮。

一、新建一个Form窗口

通过File->New菜单打开新建窗口的界面,系统提供模板化的窗口和多种窗口类型供选择如图:



可以看到这些窗口都是QWidget基础上派生出来的,包含两类,上面为窗口模板,下面部分为单独的窗口组件,模板部分提供了两个带按钮的对话窗和一个不带按钮的对话窗、一个带菜单和toolbar的主窗口和一个纯窗口的Widget(对应QWidget类)五种窗口模板(其实最后一个Widget已经不是模板),窗口部分提供了十种不同风格的从QWidget类(Widget窗口组件)派生的不同类型的窗口。

二、规划布局组件

布局类组件包括布局组件、分隔组件,其中布局组件决定放置组件在窗口的方向和随窗口伸缩的伸缩模式。布局组件内本身还可以嵌套放置布局组件。在同一容器内(如布局组件、窗口)同级的布局组件之间是无缝隙的,如果要调整相邻组件之间的间隔,可以采用分隔组件。

三、窗口上放置组件

窗口创建并放置布局组件后,就可以从QtDesigner左侧剩余六大类子组件中拖拽图标放置到窗口上,根据应用需要决定是否放置容器类组件(Containers),然后放置各功能组件,包括按钮、数据项视图类、项组件类、输入组件类、显示类组件。

四、调整组件的属性

组件放置后,需要调整组件的各种属性,包括名字、位置、大小、颜色、字体,不同的组件有不同的属性。具体在每类组件介绍时再详细说明。

五、定义信号和槽函数的连接

信号和槽函数是Qt及PyQt中非常重要的机制,用于定义组件的事件和处理函数的对应关系,支持跨组件的信号和槽函数对应、支持一个槽函数对应多个信号,并支持在槽函数中获取信号发送者,还支持自定义信号。通过信号和槽函数的连接,就可以将界面操作动作以及一些隐含的事件与处理程序挂钩,使得信号得到响应从而实现界面与处理逻辑的分离和连接,分离是界面的设计和信号处理逻辑的分离,在界面上指定信号接收的对象以及该对象执行响应处理逻辑的函数名,但不具体实现响应逻辑,连接是支持信号和槽函数二者建立关联,这样就实现了界面和逻辑的分离。这些内容将在专门章节介绍。

完成以上五步工作后,基于Qt Designer的GUI设计就完成了,就可以应用《第15.7节 PyQt入门学习:PyQt5应用构建详细过程介绍》的方法来进行UI界面到代码的生成以及具体槽函数的实现等程序开发步骤。


博客地址:https://blog.csdn.net/LaoYuanPython

老猿Python博客文章目录:https://blog.csdn.net/LaoYuanPython/article/details/98245036

第15.9节 PyQt学习入门:使用Qt Designer进行GUI设计的步骤的更多相关文章

  1. PyQt学习随笔:Qt Designer调用帮助时报错找不到assistant.exe文件的解决办法

    老猿是按照<第15.5节 PyQt5安装与配置>步骤安装的PyQt及相关工具,但最近在Qt Designer中点击帮助相关菜单时报错找不到assistant.exe文件,如图: 按照报错信 ...

  2. PyQt学习随笔:Qt Designer的Edit Buddies功能

    在Qt Designer的Edit菜单下有个Edit Buddies(编辑伙伴关系)子菜单,该菜单的作用是将一个Label与其他控件关联起来,当Label控件设置了快捷键时,通过Label的快捷键就可 ...

  3. 第15.38节 PyQt(Python+Qt)入门学习:containers容器类部件QDockWidget停靠窗功能详解

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 一.概述 QDockWidget类提供了一个可以停靠在QMainWin ...

  4. 第15.37节 PyQt(Python+Qt)入门学习:containers容器类部件QMdiArea多文档界面部件详解及编程开发案例

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 一.引言 老猿在前期学习PyQt相关知识时,对每个组件的属性及方法都研 ...

  5. 第15.25节 PyQt(Python+Qt)入门学习:Model/View开发实战--使用QTableView展示Excel文件内容

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 在前面的订阅专栏<第十九章.Model/View开发:QTableView的功能及属 ...

  6. 第15.18节 PyQt(Python+Qt)入门学习:Model/View架构中视图Item Views父类详解

    老猿Python博文目录 老猿Python博客地址 一.概述 在PyQt图形界面中,支持采用Model/View架构实现数据和界面逻辑分离,其中Model用于处理数据存储,View用于界面数据展现,当 ...

  7. 第15.33节 PyQt(Python+Qt)入门学习:containers容器类部件QTabWidget选项窗部件简介

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 容器部件就是可以在部件内放置其他部件的部件,在Qt Designer中可以使用的容器部件有 ...

  8. 第15.28节 PyQt(Python+Qt)入门学习:Model/View架构中的便利类QTableWidget详解

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 表格部件为应用程序提供标准的表格显示工具,在表格内可以管理基于行和列的数据项,表格中的最大 ...

  9. 第15.27节 PyQt(Python+Qt)入门学习:Model/View架构中的便利类QTreeWidget详解

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 树部件(Tree Widget)是Qt Designer中 Item Widgets(It ...

随机推荐

  1. F1分数

    分类的常用指标有: accuracy:准确率 recall:召回率 precison:精确率 f1score:f1分数,是recall和precison的调和均值. 准确率什么情况下失效? 在正负样本 ...

  2. 用DOM和DOM4J写xml文件时,怎样设置xml文档的编码

    //在将xml文档传输出去时,利用Transformer中的setOutputProperty方法 TransformerFactory trans = TransformerFactory.newI ...

  3. link和@import引入css 区别,不建议使用@import

    众多周知,有两种方法可以在页面中导入样式文件. <link href="a.css" rel="stylesheet"> <style> ...

  4. Java的图形打印

    1.菱形 复制代码 package Java_Learn.File; public class Main1 { public static void main(String[] args) { pri ...

  5. C# + Matlab 实现计件工时基于三层BP神经网络的拟合--真实项目

    工序工时由该工序的工艺参数决定,有了工时后乘以固定因子就是计件工资.一般参考本地小时工资以及同类小时工资并考虑作业的风险等因素给出固定因子 采用的VS2010 , Matlab2015a 64,  开 ...

  6. 配置xenserver本地存储

    查询磁盘对应关系: [root@xenserver-eqtwbths ~]# ll /dev/disk/by-id/ total 0 lrwxrwxrwx 1 root root 9 Jun 5 13 ...

  7. (7)ASP.NET Core3.1 Ocelot Swagger

    1.前言 前端与后端的联系更多是通过API接口对接,API文档变成了前后端开发人员联系的纽带,开始变得越来越重要,而Swagger就是一款让你更好的书写规范API文档的框架.在Ocelot Swagg ...

  8. Linxu (centos6.8)常见目录及文件解析

    /etc/sysconfig/networ-scripts/ifcfg-eth0    第一块网卡配置 BOOTPROTO="dhcp" #启用地址协议,static静态协议,bo ...

  9. tp5 生成随机数

    控制器调用 public function GetRanStr(){ if (request()->isPost()) { //生成6位数随机数 return GetRandStr(6); } ...

  10. 面试官:你说你精通源码,那你知道ArrayList 源码的设计思路吗?

    Arraylist源码分析 ArrayList 我们几乎每天都会使用到,但是通常情况下我们只是知道如何去使用,至于其内部是怎么实现的我们不关心,但是有些时候面试官就喜欢问与ArrayList 的源码相 ...