不管开发什么程序,一个友好的用户界面都是至关重要的,然而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了。

qt可以用python编写吗 python能用qt吗_Python

2)安装PyQT5

步骤跟SIP安装一样

qt可以用python编写吗 python能用qt吗_PyQT_02

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

qt可以用python编写吗 python能用qt吗_SWIG_03

qt可以用python编写吗 python能用qt吗_qt可以用python编写吗_04

qt可以用python编写吗 python能用qt吗_UI_05

qt可以用python编写吗 python能用qt吗_SWIG_06

3、配置PyQT_UIC

PyQT_UIC的配置跟PyQt5Designer的配置基本一致,只有一点不同,如图,第2步需要设置参数,输入以下内容

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

qt可以用python编写吗 python能用qt吗_Python_07

配置完之后我们可以在设置面板上看到已经添加成功

qt可以用python编写吗 python能用qt吗_Python_08


在主菜单栏中也可以看到相关配置

qt可以用python编写吗 python能用qt吗_PyQT_09

致辞我们已经配置好了PyQT5,是不是很简单呢?

4、测试

1)打开PyQt5Designer

首先我们需要在PyQt5Designer中设置好我们的UI界面,点击主菜单栏中的Tools --> External Tools – > QT Designer

qt可以用python编写吗 python能用qt吗_PyQT_09


进入到PyQt5Designer界面,如下图所示:

qt可以用python编写吗 python能用qt吗_Python_11


现在我们就可以在主面板中配置我们想要的效果了,点击保存进行命名,由于之前PyQt5Designer配置,新建的UI文件默认保存在Python项目文件夹的根目录下,如图所示

qt可以用python编写吗 python能用qt吗_PyQT_12

编辑好UI界面之后我们就可以进行编译了,将UI界面编译成Python代码,后面我们就可以调用使用了

选中生成的 .ui文件,鼠标右键点击,选择PyQTUIC进行编译

qt可以用python编写吗 python能用qt吗_UI_13

编译结束之后,在根目录下便会看到生成的 .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 进行运行,出现如下结果,那么恭喜你全部配置成功

qt可以用python编写吗 python能用qt吗_PyQT_14