GUI库:PyQt5

简介: GUI库:PyQt5

1.PyQt5简介


PyQt是基于QT的Python封装,标准的QT开发使用的是C++语言,开发效率比较低,而使用Python语言进行封装后,开发效率也大大提升。并且还可以进行可视化的开发。


PyQt是英国的Riverbank Computing公司开发的一套封装QT程序库的Python GUI库。


PyQt5有两种版本:GPL(开源)和商业授权。


PyQt5的模块
1. QtCore:包含了核心的非GUI功能。
2. QtGui:包含了窗口系统、事件处理、2D图像等。
3. QtWidgets:包含了一系列创建桌面应用的UI元素


2.安装PyQt5


在使用PyQt5开发GUI程序之前,首先要安装PyQt5。包括PyQt5的运行环境,以及用于可视化开发的QTDesigner,用于将 .ui文件转化为Python代码的PyUIC.


2.1 PyQt5开发环境搭建


方法一:下载PyQt5的源代码:


https://www.riverbankcomputing.com/software/pyqt/download5


下载完之后,按说明配置和编译PyQt5的源代码:


;(不推荐)


方法二:


pip install pyqt5
pip unstall pyqt5

安装完成后,运行Python命令,进入Python的REPL环境,输入import PyQt5,按Enter键后,如果没有抛出异常,说明PyQt5已经安装成功。


2.2 配置QTDesigner(可视化开发)


QTDesigner是用于可视化开发的工具,在QT安装包中。在使用QTDesigner之前,先要安装QT。

方法一:下载QT的在线安装版本(请选择开源版本)

https://www.qt.io/download

方法二:下载QT的离线安装包,请选择相应的操作系统版本

https://download.qt.io/archive/qt

如果使用的是Anaconda Python开发环境,不需要安装QT,因为Anaconda中已经集成了QTDesigner。


1.苹果系统版本的Anaconda,QTDesigner路径:<Anaconda根目录>/bin/Designer.app


2.windows:<Anaconda根目录>\Library\bin\designer.exe

得到QTDesigner–>选择Python IDE,将QTDesigner与Python IDE关联,也就是在Python IDE中调用QTDesigner。


将QTDesigner添加到pycharm的扩展工具中。


步骤: pycharm–> File–> Settings–> Tools–> External Tools(在右侧会显示当前所有的扩展工具,默认是空)–> 单击加号(+)按钮添加一个扩展工具–> 弹出Create Tool。


20191220105844156.png


Working directory–designer.exe工作路径,设置为 $ProjectFileDir$


完成以上工作后,关闭Create Tool对话框以及 Preference窗口,看到Pycharm–>Tools–>External Tools–>QTDesigner–>单击(启动)


2019122011052483.png


1.第一次启动QTDesigner–>询问要建立哪种类型的窗口(这里选择Main Window)–>单击“创建”按钮。


新建窗口后,会出现一个空的窗口。


20191220111142960.png

2.在窗口的左侧出现一个 “窗口部件盒” 窗口,如下图所示:

20191220111214972.png


3.从 “窗口部件盒” 上可以拖动相应的控件到上面创建的空的窗口上,拖动效果如下图所示:


20191220111553600.png


4.按Ctrl+S(windows)或者Command+S(Mac OS X)键保存窗口 -->会将窗口保存成一个扩展名为 “ .ui ”的文件,这是窗口布局文件。


建议:先用Pycharm建立一个Python工程,然后将.ui文件放到工程目录,这样使用起来更方便。


2.3 配置PyUIC(命令行工具)


将设计好的窗口保存成.ui 的文件,但是这个.ui 文件并不能被Python直接使用,需要用工具将这个.ui文件转换为Python源代码文件(.py文件),这个工具就是PyUIC。


在pycharm上配置PyUIC与配置QTDesigner类似,


20191220151125783.png


方法一:

name----PyUIC
Program:/Users/lining/ancounda/bin/python.exe
Arguments:$FileName$ -o $FileNameWithoutExtension$.py
Working dirctory:  $FileDir$


方法二:


PyQt的安装目录的bin子目录有一个pyuic5命令,直接执行这个命令也可以将.ui文件转换为.py文件。

name----PyUIC
Program:PyUIC位于当前解析器的Scripts\pyuic5.exe
Arguments:$FileName$ -o $FileNameWithoutExtension$.py
Working dirctory:  $FileDir$


不管使用那种配置,在External Tools菜单项中都会多出一个PyUIC子菜单项。

假设保存的.ui文件名为main.ui。


1.在工程目录中选中该文件


2.右击弹出的快捷菜单中选择External Tools–>MyUIC菜单栏(就会在当前目录生成一个main.py文件,打开该文件全是Python代码,这些代码是从XML格式的main.ui文件转换为Python语言格式的,转化后的目标代码是使用Python代码动态创建main.ui上的控件。)转换后的Python工程目录结构如图所示:


20191220223306591.png


main.py文件中只包含了一个名为Ui_MainWindow的类,在这个类的setupUi方法中创建了所有的控件,不过这个类还不能直接运行,需要在Test.py文件中输入如下代码才能启动程序。


# QApplication,QMainWindow这两个类都在PyQt5.QtWidgets模块中
import sys
import main.py
from PyQt5.QtWidgets import  QApplication,QMainWindow
if __name__ == "__main__":
    app = QApplication(sys.argv)  #QApplication类的实例相当于整个应用程序 
    MainWindow = QMainWindow()
    ui = main.Ui_MainWindow()
    ui.setupUi(MainWindow)   # 调用setupUi方法动态创建控件
    MainWindow.show()        # 显示窗口
    sys.exit(app.exec_())    # 当窗口关闭后会退出程序


现在选中Test.py文件,运行,会显示窗口。

目录
相关文章
|
存储 监控 Linux
在 CentOS 7 中如何进行磁盘分区和挂载的最佳实践。
【10月更文挑战第7天】本文详细介绍了在 CentOS 7 中如何进行磁盘分区和挂载的最佳实践。通过合理规划和管理磁盘空间,可以提高系统的稳定性和可维护性。具体步骤包括确认未使用的硬盘、创建分区、格式化分区、创建挂载点、挂载分区以及编辑 `/etc/fstab` 文件实现永久挂载。此外,还分享了备份数据、分区规划、权限设置和监控磁盘使用等最佳实践。这些技能对 IT 专业人员来说至关重要。
1058 3
|
JavaScript 前端开发 IDE
QCAD v3.23.0.2源码编译,使用VS2017+Qt5.12.5环境
QCAD v3.23.0.2源码编译,使用VS2017+Qt5.12.5环境
1632 0
|
10月前
|
数据采集 人工智能
2025年华为杯F题|江南古典园林的美学特征建模|思路、代码、论文|持续更新中....
2025年华为杯F题|江南古典园林的美学特征建模|思路、代码、论文|持续更新中....
854 0
|
SQL 关系型数据库 MySQL
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
课程分类查询、课程新增、统一异常处理、统一封装结果类、JSR303校验、修改课程、查询课程计划、新增/修改课程计划
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
|
安全 网络协议 搜索推荐
远控安全金标准,ToDesk、向日葵、网易UU安全功能盘点,是否能攻破防线
本文对ToDesk、向日葵和网易UU三款主流远程控制软件进行了安全性评测。远程控制技术虽带来便利,但也存在安全隐患。文章从设备授权管理、远程连接与数据传输、隐私安全机制及主动防诈保护四个方面展开分析。ToDesk在二次验证、金融窗口保护等方面表现突出;向日葵基础安全功能完善但缺乏创新;网易UU侧重基础功能,安全机制尚待完善。最终通过星级表对比,ToDesk综合表现最佳,向日葵次之,网易UU适合低风险场景。未来远控软件需向体系化、智能化方向发展以应对不断演变的威胁。
|
人工智能 小程序 算法
【01】AI制作音乐之三款AI音乐软件推荐,包含AI编曲-AI伴奏-AI混音合成remix等-其次关于音乐版权的阐述-跟随卓伊凡学习如何AI制作音乐-优雅草卓伊凡
【01】AI制作音乐之三款AI音乐软件推荐,包含AI编曲-AI伴奏-AI混音合成remix等-其次关于音乐版权的阐述-跟随卓伊凡学习如何AI制作音乐-优雅草卓伊凡
2767 14
|
安全 网络协议 网络虚拟化
|
安全 Linux 测试技术
Kali Linux预装的自动化渗透测试工具
Kali Linux预装的自动化渗透测试工具
1378 2
|
IDE 数据中心 Docker
使用PyCharm与Docker容器进行开发:从入门到精通
使用PyCharm与Docker容器进行开发:从入门到精通
4759 0
|
存储 JSON 前端开发
JSON格式转换工具:快速、简单、高效处理JSON数据
JSON格式转换工具:快速、简单、高效处理JSON数据
1427 1