Python编写可视化界面的全过程(Python+PyCharm+PyQt)


Posted in Python onMay 17, 2021

最近开始学习Python,但只限于看理论,编几行代码,觉得没有意思,就想能不能用Python编写可视化的界面。遂查找了相关资料,发现了PyQt,由于前一段时间刚看过Qt,而且对Qt的印象很好,于是觉得用PyQt应该是一个比较愉快的选择。

1、前言

PyQt的版本需要与Python的版本保持一致,在这里我用的PyQT的版本是 PyQt5-5.6-gpl-Py3.5-Qt5.6.0-x64.exe,具体下载方式,请直接搜索。由于该版本需要v3.5版本的Python,所以首先需要安装Python3.5,然后安装PyQt,为了更加方便的写代码,故安装了Pycharm,版本为pycharm-community-2017.3.2.exe。具体的下载、安装,网上有很多教程,在这里就不多做描述,请自行搜索,下面就先介绍基于Pycharm+Python3.5+PyQt5.6的Python可视化编程。文末还会介绍一下基于最新版本的Pycharm2018.3+Python3.7+PyQt5.11的Python可视化编程。

2、开始

 1)、打开PyCharm并配置相关设置

打开PyCharm界面如下:

Python编写可视化界面的全过程(Python+PyCharm+PyQt)

点击界面右下方的“Configure”下拉按钮,选择“Settings”,如下所示:

Python编写可视化界面的全过程(Python+PyCharm+PyQt)

打开如下设置界面:

Python编写可视化界面的全过程(Python+PyCharm+PyQt)

如上图所示,在“Project Interpreter”选显卡中选择本机所安装的Python版本,一般情况下,它会自动识别本机所安装的Python版本,如图所示,选择的为Python3.5;

配置完成之后,点击“OK”,返回开始界面,

选择“Create New Project”,选择工程路径和工程的名称,然后点击"Create",然后弹出如下界面:

Python编写可视化界面的全过程(Python+PyCharm+PyQt)

    此时,工作环境已准备完毕;

3、编写

1)、首先,创建一个.py文件,暂命名为PyQt.py

2)、其次,需要导入PyQt的文件如下所示:

import sys
from PyQt5.QtWidgets import QWidget, QApplication

注意,如果提示找不到对应文件,请确保PyQt5的安装路径在环境变量中!

然后先添加主函数:

if __name__ == "__main__":
    app = QApplication(sys.argv)
    sys.exit(app.exec_())

接下来就需要添加界面相关函数:

#class Example
class Example(QWidget):
    def __init__(self):
        super(Example, self).__init__()
        self.InitUI()
 
    def InitUI(self):
        self.btn = QPushButton("Dialog", self)
        self.btn.move(20, 20)
        self.btn.clicked.connect(self.ShowDialog)
 
        self.le = QLineEdit(self)
        self.le.move(130, 22)
 
        self.setWindowTitle("Input Dialog")
        self.show()
 
    def ShowDialog(self):
        text,ok = QInputDialog.getText(self, "Input Dialog", "Enter your name:")
        if ok:
            self.le.setText(str(text))

如上代码所示,在Python中主要是通过类来生成界面的,在类中,可以进行界面的生成,控件的创建,创建控件的响应函数,connect控件与控件响应函数。

其中函数 __init__(self) 可以理解为该类的构造函数,其中界面的初始化在该部分执行;

函数 InitUI(self) 主要是生成界面控件;

当类创建完成后,只需要在主函数中调用该类即可。如下所示:

if __name__ == "__main__":
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

在以上的代码中,主要是在界面中添加了一个按钮(btn),一个编辑框(le),一个按钮响应函数(ShowDialog),其中在ShowDialog响应函数中打开了一个标准输入窗口,并将标准输入窗口中输入的值显示到编辑框(le)中。

Python编写可视化界面的全过程(Python+PyCharm+PyQt)  Python编写可视化界面的全过程(Python+PyCharm+PyQt)

结果:

Python编写可视化界面的全过程(Python+PyCharm+PyQt)

4、扩展

在接下来做了一个更加复杂的例子,主要是模拟汇率的解算,界面主要如下所示:

Python编写可视化界面的全过程(Python+PyCharm+PyQt)

其中主要涉及了按钮、编辑框、Label、布局等 ,与第一个例子写在了同一个文件中

5、最新版本配置方法

采用最新版本的Python、PyQt、Pycharm配置可视化编程环境。

首先先安装Python3.7,然后安装Pycharm2018.3,并配置python解释器为Python3.7的本地目录,接下来就是安装PyQt5.11。

安装PyQt5.11是采用pip+wheel文件安装的形式,下载网址:https://pypi.org/project/PyQt5/#files

把下载的PyQt5-5.11.3-5.11.2-cp35.cp36.cp37.cp38-none-win_amd64.whl文件放置到合适的位置。

打开CMD,按照以下形式输入安装命令:

Python编写可视化界面的全过程(Python+PyCharm+PyQt)

回车,pip就会自动安装该文件了:

Python编写可视化界面的全过程(Python+PyCharm+PyQt)

此时PyQt5.11就安装成功了。

可以通过以上的代码进行测试。

6、Ubuntu下python2.7安装pyqt5

上面记录的都是在windows+python3环境下pyqt5的安装。由于工作需要,需要在Ubuntu+python2.7环境下安装pyqt5,根据pyqt5的官网,pyqt5只有针对python3的安装包,而没有python2.7的,所以可以通过在线安装的方式安装,下面是Ubuntu+python2.7环境下pyqt5的安装:

在ubuntu中打开终端,直接输入:

$sudo apt-get install python-pyqt5

即可,安装完成之后,直接在代码编辑页面import PyQt5即可,亲测可用。

另外,上面这种方式好像还可以用于ubuntu+python3环境下pyqt5的安装,也是通过命令安装:

$sudo apt-get install python3-pyqt5

上面未经测试,但是应该没问题。

总结

到此这篇关于Python编写可视化界面(Python+PyCharm+PyQt)的文章就介绍到这了!

Python 相关文章推荐
python处理图片之PIL模块简单使用方法
May 11 Python
Python使用matplotlib实现在坐标系中画一个矩形的方法
May 20 Python
Python打印斐波拉契数列实例
Jul 07 Python
浅谈机器学习需要的了解的十大算法
Dec 15 Python
Python操作MySQL模拟银行转账
Mar 12 Python
Django框架验证码用法实例分析
May 10 Python
基于python实现自动化办公学习笔记(CSV、word、Excel、PPT)
Aug 06 Python
Django将默认的SQLite更换为MySQL的实现
Nov 18 Python
Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释
Jan 25 Python
520使用Python实现“我爱你”表白
May 20 Python
15款Python编辑器的优缺点,别再问我“选什么编辑器”啦
Oct 19 Python
python文件名批量重命名脚本实例代码
Apr 22 Python
Pytorch 实现变量类型转换
Python进度条的使用
May 17 #Python
Python包管理工具pip的15 个使用小技巧
Python中json.dumps()函数的使用解析
May 17 #Python
Python中threading库实现线程锁与释放锁
Python中Cookies导出某站用户数据的方法
May 17 #Python
Python 高级库15 个让新手爱不释手(推荐)
You might like
php数组对百万数据进行排除重复数据的实现代码
2010/06/08 PHP
php出现内存位置访问无效错误问题解决方法
2014/08/16 PHP
php实现用于计算执行时间的类实例
2015/04/18 PHP
php根据一个给定范围和步进生成数组的方法
2015/06/19 PHP
PHP如何使用array_unshift()在数组开头插入元素
2020/09/01 PHP
javascript 动态table添加colspan\rowspan 参数的方法
2009/07/25 Javascript
innerText和textContent对比及使用介绍
2013/02/27 Javascript
jquery遍历数组与筛选数组的方法
2013/11/05 Javascript
js快速排序的实现代码
2013/12/08 Javascript
JavaScript实现的圆形浮动标签云效果实例
2015/08/06 Javascript
JS中对象与字符串的互相转换详解
2016/05/20 Javascript
JS/jQuery判断DOM节点是否存在的简单方法
2016/11/24 Javascript
bootstrapValidator表单验证插件学习
2016/12/30 Javascript
JS轮播图中缓动函数的封装
2020/11/25 Javascript
纯js的右下角弹窗实例
2017/03/12 Javascript
ES6入门教程之Class和Module详解
2017/05/17 Javascript
bootstrap+jQuery 实现下拉菜单中复选框全选和全不选效果
2017/06/12 jQuery
解决vue build打包之后首页白屏的问题
2018/03/06 Javascript
vue forEach循环数组拿到自己想要的数据方法
2018/09/21 Javascript
今天,小程序正式支持 SVG
2019/04/20 Javascript
基于vue如何发布一个npm包的方法步骤
2019/05/15 Javascript
layui table复选框禁止某几条勾选的实例
2019/09/20 Javascript
[46:23]完美世界DOTA2联赛PWL S2 FTD vs Magma 第一场 11.20
2020/11/23 DOTA
python itchat实现调用微信接口的第三方模块方法
2019/06/11 Python
使用python来调用CAN通讯的DLL实现方法
2019/07/03 Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
2019/08/14 Python
python爬虫 urllib模块发起post请求过程解析
2019/08/20 Python
使用Python生成200个激活码的实现方法
2019/11/22 Python
使用pandas实现筛选出指定列值所对应的行
2020/12/13 Python
Python爬虫分析微博热搜关键词的实现代码
2021/02/22 Python
利用canvas实现图片下载功能来实现浏览器兼容问题
2019/05/31 HTML / CSS
美国高品质个性化珠宝销售网站:Jewlr
2018/05/03 全球购物
医学院校毕业生自荐信范文
2014/01/01 职场文书
总裁办公室主任职责
2014/01/02 职场文书
《为人民服务》教学反思
2016/02/20 职场文书
golang 定时任务方面time.Sleep和time.Tick的优劣对比分析
2021/05/05 Golang