Python+PyQt架构:使用设计师编写界面程序入门示例
off999 2024-10-18 08:09 49 浏览 0 评论
PyQt是Qt界面库在Python下的绑定,为在Python语言下编写GUI界面程序提供了极大的便利。对于界面程序的设计,可以使用代码构建,也可以借助于其提供的设计师(Qt Designer)工具来构建。
下面给出一个在Python语言中使用PyQt界面库及设计师工具编写界面程序的入门例子。
例子说明
该例运行界面如下图所示,包括了常用软件界面必备的几个区域部分:菜单栏、工具栏、状态栏及主窗口显示区域,其中,主窗口显示区域使用水平及垂直分割条控件以左一右二的形式分为了三个窗口部分。
工具栏的显示样式可通过菜单设置为"仅显示图标"或"显示图标和文字"两种样式。另外,通过点击工具栏上窗口视图的下拉菜单可设置右面两个窗口的显示或隐藏状态。
下面看下怎么在设计师(Qt Designer)中来实现这个界面程序的设计。
前提条件
假定你使用的IDE是PyCharm,并且已经配置了如下图所示三个常用工具:
具体的配置方法可参考前面的文章:
这三个常用工具都可以在PyCharm的右键菜单中操作,功能简要说明如下:
Qt Designer:可以在PyCharm中开发环境中快速打开设计师(Qt Designer)工具。
PyUIC:将Qt Designer设计的".ui"界面文件转换成".py"文件。
Rcc2Py:将Qt Designer设计中用到的资源文件".qrc"文件转换成".py"文件。
软件界面使用设计师(Qt Designer)工具的设计过程
1、新建UI文件
打开设计师,新建一个窗体,模板选择为Main Window,如下图所示,并保存为"Main.ui"文件:
2、新建资源文件
在设计师的资源浏览器中新建一个资源文件保存名称为"MyRes.qrc",将本例界面中用到的图标等资源文件添加到该文件中,如下图所示(前缀设置为空,图标文件保存在当前程序所在目录的img子文件夹下):
3、在动作编辑器编辑各种action
菜单栏、工具栏上的大部分功能都可以通过动作编辑器完成,可以设置每个action的名称、文本、快捷键、是否可选、工具提示等信息,本例中动作编辑完成后如下图所示:
4、菜单栏设计
通过拖放前面创建的action,可在设计师中完成菜单栏的设计,对于本例,设计完成后文件、选项-工具栏样式及选项-窗口视图菜单项分别如下图所示:
5、工具栏设计
同菜单栏设计过程类似通过拖放前面创建的action完成工具栏的设计,本例中工具栏编辑完成后如下图所示:
需要说明的是,本例工具栏还包括一个带下拉菜单的QToolButton控件,在设计师中不能直接将其放到工具栏区域中,后面需在代码中手动创建该控件。
6、状态栏设计
本例状态栏比较简单,只在状态栏中添加一个QLabel控件作一个简单的信息显示即可。同样,在设计师中不能直接将QLabel控件放到状态栏区域中,后面需在代码中手动创建该控件。
7、主显示区域设计
本例中,主显示区域分为左一右二的三个窗口,使用分割条进行布局。为简单起见,本例使用三个"Plain Text Edit"控件作为显示窗口。在设计师中拖放三个状态栏"Plain Text Edit"控件到主窗口区域中,分别命名为leftWnd、rightWnd1和rightWnd2,同时,在属性编辑器设置三个控件的plainText属性分别为左窗口、右窗口1、右窗口2。然后选中rightWnd1和rightWnd2,在设计师中选择"使用分裂器垂直布局",完成右面两个窗口的垂直布局。然后再选中这个垂直布局和leftWnd窗口,在设计师中选择"使用分裂器水平布局",这样使用水平分割条完成了整个界面左、右两部分的水平布局。如下图所示:
8、信号/槽的设计
在设计师的信号/槽编辑器中可完成信号与槽函数的关联,对于本例,将动作actExit关联到主窗口的关闭事件中,这样,在工具栏中点击退出按钮时,可退出该程序,如下图所示:
至此,在设计师中完成了整个界面的设计,保存文件。该界面中涉及到的所有界面对象元素如下图所示:
界面文件至Python文件的转换
在设计师中界面设计完成后,我们得到了两个文件:"Main.ui"界面文件和"MyRes.qrc"资源文件,需将这两个文件转换为Python能够识别的文件,这就用到了前面提到的已经集成好的两个工具"PyUIC"和"Rcc2Py"。
在PyCharm开发环境中,选中这两个文件,在右键菜单中分别选择"PyQt4-->PyUIC"和"PyQt4-->Rcc2Py"即可完成这两个文件的转换。
转换完成后,生成了两个新的文件,分别为界面文件"Ui_Main.py"和资源文件"MyRes_rc.py"。
其中,"Ui_Main.py"文件中主要定义了一个界面布局类"Ui_MainWindow",在该类中,会自动导入"MyRes_rc.py"的内容。
主程序"Main.py"的编写
在PyCharm开发环境中新建一个Python文件"Main.py"。其调用界面文件的主要思路为:
定义一个类MainWindow,继承自QMainWindow和Ui_MainWindow类,在该类中实现设计师中不能完成的界面元素,如本例中工具栏上的下拉菜单按钮和状态栏上的label控件等,实现信号与槽函数的关联,完成槽函数的实现。
MainWindow类的具体实现代码如下图所示:
对上述代码说明如下:
第16-45行,类的初始化函数。
第20-36行,添加设计师中不能完成的界面元素,详细请参考注释。
第38-40行,实现两个动作与槽函数的关联,用以设置工具栏的样式和右边两个窗口是否可见。
第42-45行,设置主分割条mainSplitter的左右两边的比例,并将其设置为主窗口的中心部件。
第47-57行,两个槽函数的具体实现。
程序的完整测试代码如下图所示:
程序运行后,即可看到本文开头的提到的界面运行图。
备注
本例开发环境配置:Python2.7 + PyQt4。
如果你觉得这篇文章对你有用的话,抖抖小手点个赞吧。
相关推荐
- 怎么把win7电脑恢复出厂设置
-
1.首先我们打开电脑找到“计算机”点击打开。2.进入页面然后我们点击“Windows7(C:)”打开C盘。3.我们在C盘界面找到Windows7并点击打开。4.进入到Win7文件夹中找到并双击“Sys...
- ctrl c 和 ctrl v 怎么按(一键复制粘贴)
-
左手小指按Ctrl键,食指按C键或者V键具体在按Ctrl+C的时候,无名指放在Z键上,中指放在X键上,食指按C键如果你也用这种方式的话,可能和我一样,第一次按的时候不习惯手指这样去分工的感觉,但是你...
- 玩游戏cpu温度多少正常(玩游戏cpu温度多少正常 贴吧)
-
在游戏过程中,CPU温度的正常范围通常在40°C至80°C之间。然而,具体的正常温度取决于CPU型号、散热系统和环境条件等因素。一般来说,如果CPU温度超过80°C,就可能存在过热的风险,需要采取措施...
- idm下载器(如何卸载idm下载器)
-
截至2023年9月3日,IDM(InternetDownloadManager)是一款非常受欢迎的下载工具,但它并没有被禁用。IDM可以帮助用户更快速、稳定地下载文件,提供了多线程下载、断点续传等...
- 电脑按f8后无法开机,三个键搞定
-
电脑开机按F8没有反应可能有多种原因,以下是一些可能的解决方法:尝试重启电脑:有时候,系统会出现临时问题,重启可能有助于解决。检查键盘连接和状态:确保键盘连接正常,没有故障。如果在其他地方测试过键盘是...
- 重装win7系统不能正常启动(win7重装系统后进不了系统)
-
1、点击Win10正式版桌面找到“此电脑”图标,右击并从弹出的右键菜单中选择“属性”项。2、此时将打开“控制”窗口,在左侧找到“高级系统设置”按钮点击进入详细设置界面。3、待打开“系统属性”窗口后,切...
- win7professional是什么版本
-
Windows7Professional是专业版。Windows7包含6个版本,分别为Windows7Starter(初级版)、Windows7HomeBasic(家庭普通版)、Win...
- tplink路由器怎么管理(tplink路由器管理app叫什么)
-
1、进入到路由器的管理界面,点击设置向导然后点下一步。2、选择工作模式,选择AP:接入点模式,点击下一步1.AP是WirelessAccessPoint的简称,中文名称:无线接入点;AP模式也...
- 怎样把wifi网速调到最快(怎样把wifi网速调到最快速度)
-
解决的方式很多,试试以下方法: 一、路由器摆放位置不正确 为了让自家的房间显得干净、整洁,很多人会选择将路由器放在不显眼的地方,比如门后、墙角、电脑桌下面,这样确实不影响美观,但是网络信号容易被...
- 十大口碑最好的台式电脑(目前最好的台式)
-
一:联想电脑联想公司是全世界500强公司,也是全世界最大的pc电脑生产商之一。目前在点信息科技产业内全方位发展,是一家具有创造力的科技大公司,在全世界也就具有极高的品牌价值。二:戴尔电脑戴尔也是PC电...
- 显卡天梯图3050ti(显卡天梯图快科技)
-
RTX3050Ti的最新跑分达到了71803。根据Geekbench的信息,RTX3050Ti搭载20组CU,也就是2560个CUDA核心,GPU频率为1.49GH...
- office完整版下载(office2019完整版下载)
-
word是office软件中的一部份,完全的安装了office软件就等于安装了word。安装具体步骤如下:1、搜索,下载Office安装包。2、下载完成后,将Office安装包解压。选中Offic...
- qq邮箱网页登陆(qq邮箱网页登陆提示安全风险要验证码)
-
qq邮箱的登录方法:1登录QQ后,正常情况下头像旁边有一个邮箱图标,点击直接登录QQ邮箱2如果没有在主面板上显示的话,可以点击界面管理器添加3在界面管理的右侧,找到QQ邮箱并设置为选状态这样就可直接从...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
慕ke 前端工程师2024「完整」
-
失业程序员复习python笔记——条件与循环
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
