PyQt 速查手册
PyQt是一个创建GUI应用程序的工具包。它是Python编程语言和Qt库的成功融合。Qt库是目前最强大的库之一。
PyQt是由Phil Thompson 开发。PyQt实现了一个Python模块集。它有超过300类,将近6000个函数和方法。它是一个多平台的工具包,可以运行在所有主要操作系统上,包括UNIX,Windows和Mac。 PyQt采用双许可证,开发人员可以选择GPL和商业许可。在此之前,GPL的版本只能用在Unix上,从PyQt的版本4开始,GPL许可证可用于所有支持的平台。
这里对常用的PyQt控件,属性做一些说明,方便查询
安装方法:
pip install PyQt5 # 安装pyqt5
pip install pyqt5-tools # 安装工具包
# 建议从清华镜像源下载安装 -i https://pypi.tuna.tsinghua.edu.cn/simple
Designer
PyQt提供了一个Pycharm的扩展工具包——pyqt5-tools
在安装完成后,可以在终端使用designer命令打开界面编辑器,使用编辑器来帮助你更好地进行窗口布局。
在布局完成后,保存为name.ui文件
可以通过以下指令生成对应的py文件
pyuic5 -o name.py name.ui
调用Designer生成的py文件
from PyQt5.QtWidgets import QApplication, QMainWindow
# 当按钮调用有多个参数输入时 partial(button_event,**arg)
from functools import partial
import name # 此处designer生成的py包
import sys
if __name__ == '__main__':
app = QApplication(sys.argv)
MainWindow = QMainWindow()
ui = Window1.Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
# 按钮的简单调用 窗口实例.按钮实例.clicked.connect
# ui.button.clicked.connect(partial(button_event, arg1, arg2))
# ui.button.clicked.connect(button_event)
sys.exit(app.exec_())
模块
-
QtCore
- 包含了核心的非GUI功能。此模块用于处理时间、文件和目录、各种数据类型、流、URL、MIME类型、线程或进程
-
QtGui
-
包含类窗口系统集成、事件处理、二维图形、基本成像、字体和文本。
-
QFont
-
QFont('SansSerif',6) # 生成一个可识别的QFont实例(字体,大小)
-
-
QIcon
-
QIcon('.png') # 生成一个可识别的QIcon实例
-
-
-
QtWidgets
-
模块包含创造经典桌面风格的用户界面提供了一套UI元素的类。
-
QApplication
-
每一pyqt5应用程序必须创建一个应用程序对象。sys.argv参数是一个列表,从命令行输入参数。
-
import sys from PyQt5.QtWidgets import QApplication # 这是模块导包的示范 app = QApplication(sys.argv)
-
-
QMessageBox
-
一些已经写好的消息弹窗样式
-
QMessageBox.information 信息框
QMessageBox.question 问答框
QMessageBox.ctitical 危险
QMessageBox.about 关于
-
-
QPushButton
-
按钮
-
btn = QPushButton('按钮名',self) # 按钮实例化 btn.resize(btn.sizeHint()) # btn.sizeHint()显示默认尺寸 btn.move(50,50) # 移动按钮窗口位置
-
-
QToolTip
-
QWidget
-
pyqt5所有用户界面对象的基类。他为QWidget提供默认构造函数。默认构造函数没有父类。
-
w = QWidget() w.resize(250, 150) # resize()方法调整窗口的大小,这里是 250px 宽、150px 高。 w.move(300, 300) # move()方法移动窗口在屏幕上的位置到x = 300,y = 300坐标。 w.setWindowTitle('title') # 设置窗口的标题 w.show() # 显示在屏幕上 # ———其他操作——— # 系统exit()方法确保应用程序干净的退出 # 的exec_()方法有下划线。因为执行是一个Python关键词。因此,exec_()代替 sys.exit(app.exec_())
-
-
-
QtMultimedia
- 包含的类来处理多媒体内容和API来访问相机和收音机的功能。
-
QtBluetooth
- 模块包含类的扫描设备和连接并与他们互动。描述模块包含了网络编程的类。这些类便于TCP和IP和UDP客户端和服务器的编码,使网络编程更容易和更便携。
-
QtNetwork
-
QtPositioning
- 包含类的利用各种可能的来源,确定位置,包括卫星、Wi-Fi、或一个文本文件。
-
Enginio
- 模块实现了客户端库访问Qt云服务托管的应用程序运行时。
-
QtWebSockets
- 模块包含实现WebSocket协议类。
-
QtWebKit
- 包含一个基于Webkit2图书馆Web浏览器实现类。
-
QtWebKitWidgets
- 包含的类的基础webkit1一用于qtwidgets应用Web浏览器的实现。
-
QtXml
- 包含与XML文件的类。这个模块为SAX和DOM API提供了实现。
-
QtSvg
- 提供显示SVG文件内容的类。可伸缩矢量图形(SVG)是一种描述二维图形和图形应用的语言。
-
QtSql
- 提供操作数据库的类。
-
QtTest
- 包含着为PyQt5应用进行单元测试的功能。