不管开发什么程序,一个友好的用户界面都是至关重要的,然而Python自身并没有集成GUI,但是好在自Python诞生之日起,就有许多优秀的GUI工具集被整合到Python当中,使得Python也可以在图形界面编程领域大展身手。所以从这一章节开始,我们以GUI开发为主。
除了PyQT,Python还支持Tkinter、wxPyhton、PyGTK、PySide,这些都是支持Python的GUI开发库,如想详细了解,请自行查询相关资料,本篇节以PyQT安装为主,接下来几篇则是基于PyQT的实战开发。
强大的PyCharm绝对是为Python开发量身定制的,只需要简单的几步即可配置好PyQT。
1、配置安装PyQT相关库
安装所需要的Python库:
Sip
PyQt5
PyQT5Designer
PyQT5-Tools
# 以下是两个国内的 PyCharm 镜像链接,
# 下载安装库文件失败的小伙伴可以添加下
# https://mirrors.aliyun.com/pypi/simple
# https://pypi.tuna.tsinghua.edu.cn/simple/
# http://pypi.doubanio.com/simple/requests/
1)安装SIP
sip是RiverBank(也就是PyQt的开发商)开发的用于PyQt的Python/C++混合编程解决方案。由于Qt框架的复杂性,PyQt并没有使用Cython、SWIG的混合编程方案,而是自己单独做了一套框架。sip包括一个sip工具、SDK和Python Module。
与SWIG类似,使用sip也需要先编写一个『配置文件』,然后使用sip工具『编译』为C++源文件,最后,和Qt库一起编译形成适用于Python的PyQt。
与SWIG不同的是,sip同时以Python Module的形式存在,也就是说,作为Python Module的PyQt,依赖于作为Python Module的sip。而对于SWIG,一旦自动生成的C++生成完毕,整个流程就不再依赖SWIG了。
2)安装PyQT5
步骤跟SIP安装一样
2、配置PyQt5Designer
QtDesigner 即QT 设计师,是一个强大的、灵活的可视化GUI设计工具,可以帮助我们加快开发PyQT程序的速度。
QTDesigner是专门用来制作PyQT程序中UI界面的工具,设置好后面PyQT_UIC,就可以非常简单的将 .ui文件转换成 .py格式,就可以被其他Python文件所调用。
我们可以直接在QtDesigner中拖动控件,通过PyCharm安装,简单省事,不需要从官网专门下载安装,而且,在Python解释器下的安装包路径中可以找到QtDesigner应用,所以与其从官网下载安装,我更喜欢PyCharm的一键安装。我的安装路径为:
D:\Program Files\Python3\Lib\site-packages\PyQt5\Qt\bin 或
D:\Program Files\Python3\Lib\site-packages\pyqt5-tools
3、配置PyQT_UIC
PyQT_UIC的配置跟PyQt5Designer的配置基本一致,只有一点不同,如图,第2步需要设置参数,输入以下内容
-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
配置完之后我们可以在设置面板上看到已经添加成功
在主菜单栏中也可以看到相关配置
致辞我们已经配置好了PyQT5,是不是很简单呢?
4、测试
1)打开PyQt5Designer
首先我们需要在PyQt5Designer中设置好我们的UI界面,点击主菜单栏中的Tools --> External Tools – > QT Designer
进入到PyQt5Designer界面,如下图所示:
现在我们就可以在主面板中配置我们想要的效果了,点击保存进行命名,由于之前PyQt5Designer配置,新建的UI文件默认保存在Python项目文件夹的根目录下,如图所示
编辑好UI界面之后我们就可以进行编译了,将UI界面编译成Python代码,后面我们就可以调用使用了
选中生成的 .ui文件,鼠标右键点击,选择PyQTUIC进行编译
编译结束之后,在根目录下便会看到生成的 .py文件,这就是编译好的Python文件,但是现在运行还不行,并没有任何的效果显示出来,这是为什么呢?
那是因为,这只是个脚本文件,我们还需要新建一个主文件,去调用刚刚生成的UI Python文件,在根目录下新建Python文件 ,然后在里面输入:
# !/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time : 2018.
# @Author : 绿色羽毛
# @Email : lvseyumao@
# @Blog :
# @Note :
import sys
import untitled # 注意,此模块名称为编译生成的 PyQT Python文件
from PyQt5.QtWidgets import QApplication, QMainWindow
if __name__ == '__main__':
app = QApplication(sys.argv)
MainWindow = QMainWindow()
ui = HelloWorld.Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
编写完成之后,右击鼠标,点击运行 run 进行运行,出现如下结果,那么恭喜你全部配置成功