第一章 PyQt5简介和安装
1.1 PyQt5 简介
PyQt5
是Digia
的一套Qt5应用框架与python的结合,同时支持2.x和3.x。Qt库由Riverbank Computing
开发,是最强大的GUI库之一
官方网站
PyQt5是由一系列Python模块组成,超过620个类,6000函数和方法。能在Unix、Windows和Mac OS等主流操作系统上运行。PyQt5有两种证书,GPL和商业证书
PyQt5类分为很多模块,主要模块有:
模块 |
功能 |
QtCore |
包含了核心的非GUI的功能,主要和时间、文件与文件夹、各种数据、流、URL、mime类文件、进程与线程一起使用 |
QtGui |
包含了窗口系统、事件处理、2D图像、基本绘画、字体和文字类 |
QtWidgets |
类包含了一系列创建桌面应用的UI元素 |
QtMultimedia |
包含了处理多媒体的内容和调用摄像头API的类 |
QtBluetooth |
模块包含了查找和连接蓝牙的类 |
QtNetwork |
包含了(TCP/IP/UDP)网络编程的类 |
QtPositioning |
包含了定位的类,可以使用卫星、WiFi甚至文本 |
Engine |
包含了通过客户端进入和管理Qt Cloud的类 |
QtWebSockets |
包含了WebSocket协议的类 |
QtWebKit |
包含了一个基WebKit2的web浏览器 |
QtWebKitWidgets |
包含了基于QtWidgets的WebKit1的类 |
QtXml |
包含了处理xml的类,提供了SAX和DOM API的工具 |
QtSvg |
提供了显示SVG内容的类 |
QtSql |
提供了处理数据库的工具 |
QtTest |
提供了测试PyQt5应用的工具 |
1.2 PyQt5的安装
pip install pyqt5
1.3 ui文件转换为py文件
1.3.1 Qt Designer的安装
打开cmd窗口,安装pyqt5-tools
pip install pyqt5-tools
1.3.2 文件转换
然后在D:\Python Env\spiders\Lib\site-packages\qt5_applications\Qt\bin
目录下找到designer.exe文件
打开designer.exe,写一个简单的Hello pyqt5窗口程序
点击Widget,并点击创建按钮
拖入一个label控件,并修改文本为“Hello pyqt5”
在D盘新建一个test文件夹,用来存放源文件。然后按下Ctrl+S,修改ui文件名并保存
打开shell窗口,输入pyuic5并回车。出现下图这种情况,表示pyqt5-tools安装好了
输入命令:pyuic5 -o py的绝对路径 源ui文件的绝对路径
之后就能看到D盘下生成了一个test.py文件
源文件内容:
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'D:\test\test.ui'
#
# Created by: PyQt5 UI code generator 5.15.2
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(400, 300)
self.label = QtWidgets.QLabel(Form)
self.label.setGeometry(QtCore.QRect(130, 90, 71, 31))
self.label.setObjectName("label")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.label.setText(_translate("Form", "hello word"))
直接运行,你会发现什么都没有发生,因为只是转化成了一个窗口类,还没有实例化
在开头导入模块:
import sys
在末尾添加:
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_Form()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
运行:
目录 下一篇 窗口布局管理(一)