PyQt5-介绍 (创建第一个窗口界面)-1
1、了解:
PyQt5是一套绑定Qt5的应用程序UI框架。他在Python 2.x和3.x中都是可用的。该教程使用的是Python3.x。Qt库是一套最有用的GUI库。PyQt5的官方主页www.riverbankcomputing.co.uk/news
。PyQt5是由Riverbank Computing开发的。
PyQt5是作为一套Python模块实现的。他已经超过620个类和6000个函数与方法。他是一个运行在所有主流操作系统上的多平台组件,包括Unix,Windows和Mac OS。PyQt5是双重许可的。开发者可以选择GPL和商业许可。
2、安装:(使用Eric6还会再提及)
pip3 install pyqt5 进行安装
注意:使用 pip3 install PyQt5安装PyQt5.9版本后发现在./Python/Lib/site-packages/PyQt5目录下没有designer.exe工具,
在PyCharm的External Tools中找不到designer.exe,查阅资料后发现有如下解决方法:
pip install PyQt5-tools -i http://pypi.douban.com/simple --trusted-host=pypi.douban.com
安装完成后,在./Python/Lib/site-packages/pyqt5-tools目录下可找到designer.exe,此后可在PyCharm或者Eric6中找到并添加designer.exe
3、PyQT5模块
- QtCore :模块包含了非GUI的功能设计。这个模块被用来实现时间,文件和目录,不同数据类型,流,URL,mime类型,线程和进程。
- QtGui:模块包含的类用于窗口化的系统结构,事件处理,2D绘图,基本图形,字体和文本。
- QtWidgets:模块包含的类提供了一套UI元素来创建经典桌面风格用户界面。
- QtMultimedia:模块包含的类用于处理多媒体内容和链接摄像头和无线电功能的API。
- QtBluetooth:模块包含的类用于扫描蓝牙设备,并且和他们建立连接互动。
- QtNetwork:模块包含的类用于网络编程,这些类使TCP/IP和UDP客户端/服务端编程更加容易和轻便。
- QtPositioning:模块包含的类用于多种可获得资源的位置限定,包含卫星定位,Wi-Fi,或一个文本文件。
- Enginio:模块用于解决客户端访问Qt云服务托管。
- QtWebSockets:模块用于解决客户端访问Qt云服务托管。
- QtWebKit:包含的关于浏览器的类用于解决基于WebKit2的支持库。
- QtWebKitWidgets:模块包含的关于WebKit1的类基本解决浏览器使用基于QtWidgets应用问题。
- QtXml:
QtXml
模块包含的类用于解析XML文件。这个模块提供SAX和DOM API解决方法。 - QtSvg:模块提供类用于显示SVG文件内容。Scalable Vector Graphics (SVG) 是一种语言,用XML来描述二维图形和图形应用程序。
- QtSql:模块提供类驱动数据库工作。
- QtTest:模块包含了方法提供PyQt5应用的单元测试。
4、创建第一个界面应用
import sys from PyQt5.QtWidgets import QApplication, QWidget #demo_1:显示一个主窗体 if __name__ == '__main__': app=QApplication(sys.argv)#所有的PyQt5应用必须创建一个应用(Application)对象 widgets=QWidget() #Qwidget组件是PyQt5中所有用户界面类的基础类。我们给QWidget提供了默认的构造方法。默认构造方法没有父类。没有父类的widget组件将被作为窗口使用。 widgets.resize(300,300) #设置这个Widget的界面大小 widgets.move(200,200) #设置显示的位置 widgets.setWindowTitle('Example')#窗体的标题 widgets.show() sys.exit(app.exec())