【嵌入式学习5】PyQt5模块介绍、创建第一个窗口
目录
1、PyQt介绍
①特点
②主要组件
2、创建第一个窗口
exce_()
1、PyQt介绍
PyQt 是一个用于创建图形用户界面(GUI)应用程序的 Python 库,它是 Qt 框架的 Python 绑定。
①特点
- 跨平台:支持多种操作系统,包括 Windows、macOS 和 Linux
- 丰富的控件库:PyQt 提供了大量预定义的控件,如按钮、文本框、列表框、菜单、工具栏等
- 信号与槽机制:信号与槽是一种通信机制,用于在对象之间传递消息。当某个事件发生时(如用户点击按钮),会发出一个信号,然后连接到一个槽(即一个函数),槽函数会被调用以处理该事件。
- 支持多种编程范围:支持面向对象编程,开发者可以创建自定义的控件类,继承自 PyQt 的控件类,并重写其方法来实现特定的功能
- 与Python深度集成:PyQt 无缝集成到 Python 中,可以方便地与其他 Python 库(如 NumPy、Matplotlib 等)结合使用
②主要组件
QtWidgets | 构建用户界面的主要模块 | QPushButton (按钮)、QLabel (标签)、QLineEdit (文本输入框)、QTextEdit (多行文本框)、QTableView (表格视图)等 |
QtGui | 与图形相关的功能 | QPainter 用于绘图操作,QFont 用于字体设置,QColor 用于颜色管理 |
QtCore | 提供了基础的类和工具,如信号与槽机制、定时器、数据结构等 | QObject 是 PyQt 中所有对象的基类,它支持信号与槽的功能 |
QtMultimedia | 处理多媒体内容 | 音频和视频播放,处理多媒体的内容和调用摄像头 |
QtNetwork | 网络编程功能 | 支持 TCP/IP 和 UDP 等协议,可以用于开发网络应用程序 |
·其他模块:QtBluetooth[蓝牙]、QtPositioningp[定位]、QtSql[处理数据库]、QtTest[测试PyQt5应用]等..
2、创建第一个窗口
思考:需要窗口什么组件?
需要构建QtWidgets用户界面模块,QApplication初始化应用程序资源(窗口系统,事件循环等..),还需要sys模块实现sys.exit()方法退出程序
import sys
from PyQt5.QtWidgets import QApplication,QWidget
from PyQt5.QtGui import QIcon
class MyWindow(QWidget):
def __init__(self):
# 调用父类的初始化方法
super().__init__()
# 定义自己的属性
self.setWindowTitle("自定义窗口")
self.resize(400,300)
self.setwindowIcon(QIcon('a.png'))
self.setToolTip('这是一个气泡提示')
# 自定义绘制
self.setStyleSheet("background-color:lightblue")
if __name__ == '__main__':
# sys.argv 是一个包含命令行参数的列表,QApplication 会解析这些参数并进行相应的处理
app = QApplication(sys.argv)
# 创建自定义窗口
window = MyWindow()
window.show()
# exce()是QApplacation中的一种方法
sys.exit(app.exec_())
exce_()
- 启动事件循环:
exec_()
方法会启动一个事件循环持续运行,直到用户关闭应用程序或程序主动退出 - 处理事件:在事件循环中,
QApplication
会监听各种事件(如鼠标事件、键盘事件、窗口事件等),并将这些事件分发给相应的控件进行处理。 - 保持应用程序运行:事件循环会阻止程序继续执行后续代码,直到事件循环结束。
exec_()
通常位于程序的最后,确保应用程序在用户关闭窗口之前一直运行。