第15.9节 PyQt学习入门:使用Qt Designer进行GUI设计的步骤
在使用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设计的步骤的更多相关文章
- PyQt学习随笔:Qt Designer调用帮助时报错找不到assistant.exe文件的解决办法
老猿是按照<第15.5节 PyQt5安装与配置>步骤安装的PyQt及相关工具,但最近在Qt Designer中点击帮助相关菜单时报错找不到assistant.exe文件,如图: 按照报错信 ...
- PyQt学习随笔:Qt Designer的Edit Buddies功能
在Qt Designer的Edit菜单下有个Edit Buddies(编辑伙伴关系)子菜单,该菜单的作用是将一个Label与其他控件关联起来,当Label控件设置了快捷键时,通过Label的快捷键就可 ...
- 第15.38节 PyQt(Python+Qt)入门学习:containers容器类部件QDockWidget停靠窗功能详解
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 一.概述 QDockWidget类提供了一个可以停靠在QMainWin ...
- 第15.37节 PyQt(Python+Qt)入门学习:containers容器类部件QMdiArea多文档界面部件详解及编程开发案例
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 一.引言 老猿在前期学习PyQt相关知识时,对每个组件的属性及方法都研 ...
- 第15.25节 PyQt(Python+Qt)入门学习:Model/View开发实战--使用QTableView展示Excel文件内容
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 在前面的订阅专栏<第十九章.Model/View开发:QTableView的功能及属 ...
- 第15.18节 PyQt(Python+Qt)入门学习:Model/View架构中视图Item Views父类详解
老猿Python博文目录 老猿Python博客地址 一.概述 在PyQt图形界面中,支持采用Model/View架构实现数据和界面逻辑分离,其中Model用于处理数据存储,View用于界面数据展现,当 ...
- 第15.33节 PyQt(Python+Qt)入门学习:containers容器类部件QTabWidget选项窗部件简介
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 容器部件就是可以在部件内放置其他部件的部件,在Qt Designer中可以使用的容器部件有 ...
- 第15.28节 PyQt(Python+Qt)入门学习:Model/View架构中的便利类QTableWidget详解
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 表格部件为应用程序提供标准的表格显示工具,在表格内可以管理基于行和列的数据项,表格中的最大 ...
- 第15.27节 PyQt(Python+Qt)入门学习:Model/View架构中的便利类QTreeWidget详解
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 树部件(Tree Widget)是Qt Designer中 Item Widgets(It ...
随机推荐
- JSON小结【json-lib】
javabean:Address package com.baebae.model; public class Address { private String city; private Strin ...
- 聊一聊sockmap 以及ebpf
之前聊过tcpdump 抓包原理,tcpdump使用packet 抓包,使用packet_map 完成零拷贝.但是这个零拷贝也有点假,何为假呢?从网卡到内存走的dma,哪能不能直接从dma拷贝到用户空 ...
- 剑指offer刷题(栈、堆、 队列、 图)
Stack & Queue 005-用两个栈实现队列 题目描述 用两个栈实现一个队列.队列的声明如下,请实现它的两个函数 push 和 pop ,分别完成在队列尾部插入整数和在队列头部删除整数 ...
- 一:JavaWeb
1.javaWeb技术体系 2.HTMl 超文本标记语言 (超文本的意思就是除了可以包含文字之外,还可以包含图片链接音乐视频等...) 2.1 HTML网页的组成 (结构:HTML 表现:CSS 行 ...
- ceph的jewel新支持的rbd-nbd
jewel版本新增加了一个驱动NBD,允许librbd实现一个内核级别的rbd NBD相比较于kernel rbd: rbd-ko是根据内核主线走的,升级kernel rbd需要升级到相应的内核,改动 ...
- [开源]CSharpFlink(NET 5.0开发)分布式实时计算框架,PC机10万数据点秒级计算测试说明
github地址:https://github.com/wxzz/CSharpFlinkgitee地址:https://gitee.com/wxzz/CSharpFlink 1 计算 ...
- 关于重写equals同时重写hashcode
1.Object中equals方法和hashcode public boolean equals(Object obj) { return (this == obj); } public native ...
- 算法:线性时间选择(C/C++)
Description 给定线性序集中n个元素和一个整数k,n<=2000000,1<=k<=n,要求找出这n个元素中第k小的数. Input 第一行有两个正整数n,k. 接下来是n ...
- Flink处理函数实战之四:窗口处理
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- webug第十二关:我系统密码忘记了!
第十二关:我系统密码忘记了! 文件上传 直接上传php一句话, 菜刀链接