Python学习笔记-PyQt
记述PyQt的相关基本知识。
一、PyQt概述
PyQt是一个创建GUI应用程序的工具包。它是Python编程语言和Qt库的成功融合。Qt库是最强大的库之一。PyQt是由Phil Thompson 开发。
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模块提供用于数据库的类。
(以上参考百度百科)
二、第一个PyQt程序
1.一般开发流程
2.HelloWorld
# _*_ coding:utf-8 _*_
# packages
import sys
from PyQt6.QtWidgets import QApplication,QWidget,QLabel
from PyQt6.QtGui import QIcon,QFont
from PyQt6.QtCore import Qt
class MainWindow(QWidget):
"""
@ 说明:主窗体类
"""
def __init__(self):
"""
@ 主窗体构造函数
"""
super().__init__() # 调用父类构造函数
self.setWindowTitle("Hello world.") # 设置标题
self.setWindowIcon(QIcon("res/Entire Network.ico")) # 设置图标
lab = QLabel("Hello World.",self) # 创建label控件
lab.resize(300,100) # 设置标签尺寸
lab.setFont(QFont("Times new roman",16)) # 设置字体
lab.setAlignment(Qt.AlignmentFlag.AlignCenter) # 设置标签对齐方式
self.show() #显示窗体
if __name__ == "__main__":
app = QApplication(sys.argv) # 创建应用程序,接收命令行参数列表
window = MainWindow() # 创建主窗体实体类
sys.exit(app.exec()) # 程序结束后,调用sys.exit()释放资源
应用程序基本需要的类如下如下:
模块 | 类 | 基本调用 | 说明 |
---|---|---|---|
PyQt6.QtWidgets | QApplication | ||
QWidget | class MainWindow(QWidget): | 窗体需要继承自QWidget | |
self.setWindowTitle("Hello world.") | 设置标题 | ||
self.setWindowIcon(QIcon("res/Entire Network.ico")) | 设置图标 | ||
PyQt6.QtGui | QIcon | QIcon("res/Entire Network.ico") | 获取QIcon类 |
QFont | QFont("Times new roman",16) | 获取字体属性,设置控件的文本字体 | |
PyQt6.QtCore | Qt | Qt.AlignmentFlag.AlignCenter | PyQt的枚举参数 |
应用程序编辑基本需要这几个类,然后再添加具体的控件进行界面编辑。