pyqt5、qtdesigner安装和环境设置教程


Posted in Python onSeptember 25, 2019

前言

最近工作需要写一个界面程序来调用摄像头并对摄像头采集的图像做一些处理。程序需要使用Python语言编写,经过调研发现PyQt5配合QtDesigner在界面程序编写方面具有功能丰富、入门简单的优点,适合我这种编程的小白。PyQt5虽然入门比较简单,但对于我这种小白来讲还是挺有难度的,学习过程中也费了不少的力气,因此在这里总结一下程序编写的过程,方便以后回顾,也方便有需要的童鞋借鉴。

我工作中使用的是USB接口输入的Flir相机,结合串口输出将相机和其它硬件组成闭环回路。这里介绍的是一个简化版的界面程序,它调用的是笔记本自带的摄像头,实现的功能就是实时显示摄像头的图像,并且可以设置摄像头的曝光、增益、亮度、颜色等参数,程序比较简单而且对硬件要求较低,非常适合初学者。

由于内容比较多,我将它分成5个部分介绍,分别为:PyQt+QtDesigner及opencv等工具的安装与设置;基于QtDesigner的界面设计;主程序的编写;笔记本摄像头的读取、显示和参数控制;exe可执行程序的生成。下面介绍第一部分。

PyQt+QtDesigner及相关插件的安装和设置

我使用PyCharm作为程序的编写界面,python的版本是3.6,笔记本的操作系统是win10。这部分内容包括PyQt5+QtDesigner以及其它工具包的安装、将QtDesigner和PyUIC链接到PyCharm的外部工具库、使用QtDesigner生成ui文件并将其转换成py文件并编写主函数来显示该界面。

1、PyQt、QtDesigner及其它工具包的安装

PyQt和QtDesigner的安装和链接到PyCharm的方法可参考链接:

Pycharm+Python+PyQt5使用

我是参照该链接学习,并根据自己的需要做了一些修改,下面介绍一下我的安装过程。

1)安装PyQt5、QtDesigner、PyUIC、opencv等工具

(在此之前,需要先完成python和pip工具的安装)

打开cmd窗口,输入

pip install pyqt5

电脑会自动下载并安装合适版本的pyqt5.

完成后,再输入

pip install pyqt5-tools

自动完成QtDesigner和PyUIC等的安装。

除此之外,我在程序编写过程中还用到了opencv和qimage2ndarray模块,最后如果想生成exe可执行文件则还需要安装pyinstaller,其安装命令分别为:

pip install opencv-python
pip install qimage2ndarray
pip install pyinstaller

至此,所有用到的模块都安装完成。

2、将QtDesigner和PyUIC链接到PyCharm的外部工具库

QtDesigner与PyCharm的链接见下图所示:点击PyCharm的File->Settings->Tools->External tools打开外部工具界面,点‘+'号进入添加外部工具界面。在‘Name'处输入工具名称,这个名称可以随便取,只要自己清楚就行,我这里写的是Qt designer。然后,找到安装的designer.exe所在的路径(一般在python安装目录下的Lib\site-packages\pyqt5_tools文件夹里),将其路径复制到‘Programs'处,注意要包含designer.exe的文件名。Working directory处设置自己的工作路径,qtdesigner生成的ui文件会默认保存在该路径。‘Arguments'不用设置,确认即可。

pyqt5、qtdesigner安装和环境设置教程

接下来,按同样的方法添加pyuic,pyuic用于将qtdesigner生成的.ui文件转换成python可以识别的.py文件。其设置过程如下图所示,Programs处输入python.exe所在的路径和文件名,Arguments处输入:

-m PyQt5.uic.pyuic -o $FileNameWithoutExtension$.py $FileName$

在Working directory处输入:

$FileDir$

这样生成的py文件就会和被转换的ui文件位于相同的文件夹下。点击ok完成设置。

pyqt5、qtdesigner安装和环境设置教程

设置完成后就可以在PyCharm的Tools->External Tools菜单下看到我们新添加的工具了。

pyqt5、qtdesigner安装和环境设置教程

3、界面设计测试小程序

打开PyCharm,选择菜单File->New Project新建一个工程项目,如下图所示,输入该项目的路径和名称,这里设置项目名称为PyQtTest。

pyqt5、qtdesigner安装和环境设置教程

完成后,单击Tools->External Tools->Qt designer打开QtDesigner。

QtDesigner打开后会自动弹出新建窗口的对话框,如果没有弹出的话可以单击File->New来打开该对话框。如下图所示,选择Main Windows,然后单击Create来创建一个主窗口。

pyqt5、qtdesigner安装和环境设置教程

QtDesigner打开后的界面如下图所示,我用红框标出了四个常用的区域,左上角的区域显示了我们界面窗口所有使用的控件列表和对应的名称;左下角区域是所有可用的控件库;中间是工作区,我们可以将控件从控件库拖拽到工作区来组合我们的程序界面;右侧区域为控件属性设置区,在我们单击选中某一个控件后,它的属性就会在这里显示出来,我们也可以在这里对控件的属性进行修改。

pyqt5、qtdesigner安装和环境设置教程

在左下角的控件菜单中找到Push Button,用鼠标左键将其拖到中间区域,然后单击File->Save as,将当前界面保存到我们刚创建的PyQtTest项目文件夹下,文件名设为QtTest.ui。

保存完成后,回到PyCharm中,可以看到我们的PyQtTest项目下多了一个QtTest.ui文件。鼠标右键单击该文件调出右键菜单,单击External tools->PyUIC,程序会调用pyuic,将ui文件转换为py文件,执行完成后就会在该项目中生成一个QtTest.py文件了。

打开QtTest.py文件会发现,里面只有一个Ui_MainWindow类,没有主程序,我们需要自己编写一个主程序来调用Ui_MainWindow类。

由于QtTest.py是通过pyuic自动生成的,当我们在qtdesigner中对程序界面进行修改,并重新生成QtTest.py时,里面原来的内容会被全部覆盖掉,因此我们尽量不要在QtTest.py中添加自己的代码,而是新建一个py文件来调用QtTest.py中的类,将自己的代码都放在新创建的文件中。

pyqt5、qtdesigner安装和环境设置教程

接下来右键单击PyQtTest项目,选择New->Python File新建一个Python文件,文件名设为'QtUi.py',打开该文件输入如下代码:

from QtTest import Ui_MainWindow
import sys
from PyQt5.QtWidgets import QApplication,QMainWindow

class CamShow(QMainWindow,Ui_MainWindow):
 def __init__(self,parent=None):
  super(CamShow,self).__init__(parent)
  self.setupUi(self)

if __name__ == '__main__':
 app = QApplication(sys.argv)
 ui=CamShow()
 ui.show()
 sys.exit(app.exec_())

然后在代码区单击右键选择Run QtUi,执行该代码,即可显示出我们在QtDesigner中设计的程序界面了。

pyqt5、qtdesigner安装和环境设置教程

本节介绍了PyQt、QtDesigner、PyUIC以及Opencv等工具的安装和PyCharm的外部工具配置,并简单介绍了从程序界面设计到最终程序运行的流程。下一节将详细介绍使用QtDesigner设计摄像头程序界面的过程。

总结

以上所述是小编给大家介绍的pyqt5、qtdesigner安装和环境设置教程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
为Python程序添加图形化界面的教程
Apr 29 Python
Python实现FTP上传文件或文件夹实例(递归)
Jan 16 Python
python算法表示概念扫盲教程
Apr 13 Python
详解Django-auth-ldap 配置方法
Dec 10 Python
python正则表达式去除两个特殊字符间的内容方法
Dec 24 Python
Python基础学习之时间转换函数用法详解
Jun 18 Python
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
Jul 22 Python
基于Python获取照片的GPS位置信息
Jan 20 Python
通过Python实现Payload分离免杀过程详解
Jul 13 Python
如何真正的了解python装饰器
Aug 14 Python
Python操作PostgreSql数据库的方法(基本的增删改查)
Dec 29 Python
一篇文章带你搞懂Python类的相关知识
May 20 Python
python super的使用方法及实例详解
Sep 25 #Python
Pycharm+Python+PyQt5使用详解
Sep 25 #Python
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
Sep 25 #Python
Python 3.6 中使用pdfminer解析pdf文件的实现
Sep 25 #Python
Python实现串口通信(pyserial)过程解析
Sep 25 #Python
Python根据服务获取端口号的方法
Sep 25 #Python
Python提取PDF内容的方法(文本、图像、线条等)
Sep 25 #Python
You might like
php5新改动之短标记启用方法
2008/09/11 PHP
浅析THINKPHP的addAll支持的最大数据量
2015/02/03 PHP
php实现图片上传并利用ImageMagick生成缩略图
2016/03/14 PHP
js中各浏览器中鼠标按键值的差异
2011/04/07 Javascript
如何获取JQUERY AJAX返回的JSON结果集实现代码
2012/12/10 Javascript
jquery实现侧边弹出的垂直导航
2014/12/09 Javascript
js查找节点的方法小结
2015/01/13 Javascript
PHP实现的各种中文编码转换类分享
2015/01/23 Javascript
JavaScript中的函数(二)
2015/12/23 Javascript
javascript中call apply 与 bind方法详解
2016/03/10 Javascript
仿Angular Bootstrap TimePicker创建分钟数-秒数的输入控件
2016/07/01 Javascript
轻松掌握JavaScript享元模式
2016/08/27 Javascript
详解Vue中使用v-for语句抛出错误的解决方案
2017/05/04 Javascript
vue-cli项目中怎么使用mock数据
2017/09/27 Javascript
在vue中使用公共过滤器filter的方法
2018/06/26 Javascript
Node.js 如何利用异步提升任务处理速度
2019/01/07 Javascript
微信小程序登录数据解密及状态维持实例详解
2019/05/06 Javascript
Node.JS获取GET,POST数据之queryString模块使用方法详解
2020/02/06 Javascript
JS面向对象编程基础篇(一) 对象和构造函数实例详解
2020/03/03 Javascript
Python安装使用命令行交互模块pexpect的基础教程
2016/05/12 Python
Python+MongoDB自增键值的简单实现
2016/11/04 Python
python回调函数中使用多线程的方法
2017/12/25 Python
Pandas读取并修改excel的示例代码
2019/02/17 Python
python的内存管理和垃圾回收机制详解
2019/05/18 Python
django中瀑布流写法实例代码
2019/10/14 Python
python中zip()函数遍历多个列表方法
2021/02/18 Python
html5图片上传预览示例分享
2014/04/14 HTML / CSS
中学校庆方案
2014/03/17 职场文书
座谈会主持词
2014/03/20 职场文书
秘书英文求职信
2014/04/16 职场文书
中专生自荐信
2014/06/25 职场文书
2014和解协议书范文
2014/09/15 职场文书
庆六一开幕词
2015/01/29 职场文书
绍兴鲁迅故居导游词
2015/02/09 职场文书
css3应用示例:新增的选择器
2022/03/16 HTML / CSS
python区块链实现简版工作量证明
2022/05/25 Python