开发者社区> 云物互联> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

PyQt4 Python GUI窗体应用程序

简介: 目录 目录 前言 软件环境 PyQT简介 Setup PyCharm Setup SIP Setup PyQt4 测试PyQt是否安装成功 常见错误 最后 前言 还是一句老话,公司要什么我就做什么。
+关注继续查看

目录

前言

还是一句老话,公司要什么我就做什么。这次来玩Python的GUI编程,做一个用于监控警报、简化SOP的窗体应用程序。首先当然是部署开发环境了,这次用PyCharm5+Python3.4+PyQt4(QT Designer)

软件环境

  • 系统
    • Win10
  • 软件
    • Python 3.4.3
    • PyCharm 5.0.4
    • PyQt 4
    • IPython 4.0.0
    • Powershell 3.0

PyQT简介

PyQt是一个创建GUI应用程序的工具包。它是Python编程语言和Qt库的成功融合。Qt库是目前最强大的库之一,Linux爱好者应该非常熟悉了,KDE就是应用QT开发的。PyQt实现了一个Python模块集,它有超过300类,将近6000个函数和方法。它是一个多平台的工具包,可以运行在所有主要操作系统上,包括UNIX,Windows和Mac。 PyQt采用双许可证,开发人员可以选择GPL和商业许可。在此之前,GPL的版本只能用在Unix上,从PyQt的版本4开始,GPL许可证可用于所有支持的平台。
因为可用的类有很多,他们被分成几个模块。
QtCore模块包含核心的非GUI功能。该模块用于时间、文件和目录、各种数据类型、流、网址、MIME类型、线程或进程。
QtGui模块包含图形组件和相关的类,例如按钮、窗体、状态栏、工具栏、滚动条、位图、颜色、字体等。
QtNetwork模块包含了网络编程的类,这些类允许编写TCP/IP和UDP的客户端和服务器,他们使网络编程更简单,更轻便。
QtXml模块包含使用XML文件的类,这个模块提供了SAX和DOM API的实现。
QtSvg模块提供显示的SVG文件的类。可缩放矢量图形(SVG)是一种用于描述二维图形和图形应用程序的XML语言。
QtOpenGL模块使用OpenGL库渲染3D和2D图形,该模块能够无缝集成Qt的GUI库和OpenGL库。
QtSql模块提供用于数据库的类。

Setup PyCharm

下载地址,点这里
双击exe执行程序一路Next即可。
注意选择Python的安装路径、设置自己喜欢的主题风格。
安装成功后打开PyCharm,并Create New Project
这里写图片描述

Setup SIP

SIP用于将PyQt的C++库映射到Python,PyQt4中内嵌了SIP。较低版本需要安装SIP后才能在Python中调用PyQt。这里我们也安装一下(虽然无所谓装不装)。
下载地址,点这里
Step1. Copy sip folder with /sip-4.17/ into D:\development\Python34\Lib\site-packages
Step2. Make install SIP
i. (配置)RUN CMD Prompt

D:\development\Python34\Lib\site-packages\sip-4.17>python configure.py

ii. (编译)借用Visual Studio的Developr Command Prompt中的umake指令来编译

D:\development\Python34\Lib\site-packages\sip-4.17>nmake 

这里写图片描述
iii. (安装)

D:\development\Python34\Lib\site-packages\sip-4.17>nmake install

这里写图片描述

SIP Install Finish

Setup PyQt4

下载地址,点这里
PyQt跨平台,主流系统的installer都有。
对于Windows来说,只需要下载exe格式的文件即可。在这个exe文件中,已经包含了如下模块:

  • PyQt4
  • Qt (with database support for MySQL, PostgreSQL, SQLite3 and ODBC)
  • Qt Designer
  • Qt Linguist
  • Qt Assistant
  • pyuic4
  • pylupdate4
  • lrelease
  • pyrcc4
  • QScintilla

注意Python的版本和位数,Example
这里写图片描述
我的是Python 3.4.3 win32

Note that the Qt documentation is not included.
PyQt4-4.11.4-gpl-Py3.4-Qt4.8.7-x64.exe Windows 64 bit installer
PyQt4-4.11.4-gpl-Py3.4-Qt4.8.7-x32.exe Windows 32 bit installer
PyQt4-4.11.4-gpl-Py3.4-Qt5.5.0-x64.exe Windows 64 bit installer
PyQt4-4.11.4-gpl-Py3.4-Qt5.5.0-x32.exe Windows 32 bit installer
PyQt4-4.11.4-gpl-Py2.7-Qt4.8.7-x64.exe Windows 64 bit installer
PyQt4-4.11.4-gpl-Py2.7-Qt4.8.7-x32.exe Windows 32 bit installer

选择python解析器的安装路径
这里写图片描述

测试PyQt是否安装成功

New Project PyQT_demo –> New file TestPyqt.py

import sys
from PyQt4 import QtGui             #QtGui是PyQt最基本的GUI绘图组件类库

app = QtGui.QApplication(sys.argv)  #创建QApplication的对象app,每个PyQt程序用都要包含有一个QApplication对象
widget = QtGui.QWidget()            #创建QWidget对象widget
widget.resize(250, 150)             #设定widget对象的resize属性值,用于指定默认部件的Size
widget.setWindowTitle('PyQt')       #设定部件的Title
widget.show()                       #Call widget对象的show()方法,即显示部件
sys.exit(app.exec_())               #最后一行是这个demo程序的主循环,也是事件处理的调用。

Run:
这里写图片描述

成功弹出窗口,表示PyQt安装成功

常见错误

这里写图片描述

这里写图片描述

Solution
PyQt Version与当前的Python Version不一致。卸载PyQt后,选择正确的版本后继续安装。

最后

下次玩QT Designer,来画画。 :-)

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
[Python公开课]零基础玩转Python基础篇----第七节:Python中的高级函数
[Python公开课]零基础玩转Python基础篇----第七节:Python中的高级函数
14 0
[Python公开课]零基础玩转Python基础篇----第六节:Python中的函数
[Python公开课]零基础玩转Python基础篇----第六节:Python中的函数
3 0
Python初级案例教学,函数的定义与调用,高阶函数,闭包以及装饰器【第四课】
Python 编写一个函数 cacluate 编写一个函数 cacluate ,可以接收任意多个数,返回的是一个元组元组的第一个值为所有参数的平均值第二个值是大于平均值的所有数. 使用高阶函数方式设计Calc函数,实现加、减、乘、除、乘方等计算功能 使用闭包编写一个学生成绩平均统计。要求每次调用函数传入一个学生成绩,得到已经传入成绩的平均分。
38 0
Python白手起家三:if+while+for+函数+变量作用范围
global a a = 2 def say(a):     a = a+1     print(a) say(a) print(a) a = 2 def say():     global a  ...
764 0
python通过函数改变变量取值
严格讲应该是“通过函数调用,改变引用对象”。python中,要区分“变量名“和”对象“ 如果是类的对象,是引用类型的,那么可以通过函数调用,来改变它的值: # coding:utf-8 class Zhuo: def __init__(self): self.
888 0
全方位解读服务网格(Service Mesh)的背景和概念
为了解决微服务框架的侵入性问题,我们引入服务网格。
1223 0
PolarDB 并行查询的前世今生
本文会深入介绍PolarDB MySQL在并行查询这一企业级查询加速特性上做的技术探索、形态演进和相关组件的实现原理,所涉及功能随PolarDB MySQL 8.0.2版本上线。
489 0
企业内部应用接入钉钉获取部门及人员信息
企业内部应用接入钉钉,同时通过API获取当前企业下部门及人员信息
1174 0
MySQL模糊查询再也用不着 like+% 了!
我们都知道 InnoDB 在模糊查询数据时使用 "%xx" 会导致索引失效,但有时需求就是如此,类似这样的需求还有很多,例如,搜索引擎需要根基用户数据的关键字进行全文查找,电子商务网站需要根据用户的查询条件,在可能需要在商品的详细介绍中进行查找,这些都不是B+树索引能很好完成的工作。 通过数值比较,范围过滤等就可以完成绝大多数我们需要的查询了。但是,如果希望通过关键字的匹配来进行查询过滤,那么就需要基于相似度的查询,而不是原来的精确数值比较,全文索引就是为这种场景设计的。
25666 0
+关注
云物互联
OpenStack Developer, Opensource Lover :- )
264
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载