PYQT学习笔记:signal 和 slot(信号与槽)
目录
1. 使用PyQT创建一个简单的图形界面
一、代码
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QPlainTextEdit# 定义一个槽函数:当按钮被点击时执行的操作
def on_button_clicked():print('按钮被点击了')app = QApplication([])window = QMainWindow()
window.resize(500, 400)
window.move(2000, 1010)
window.setWindowTitle('薪资统计')textEdit = QPlainTextEdit(window)
textEdit.setPlaceholderText("请输入薪资表")
textEdit.move(10,25)
textEdit.resize(300,350)button = QPushButton('统计', window)
button.move(380,80)# 关键:将按钮的"点击信号"与"槽函数"连接起来
# 信号:button.clicked
# 槽:on_button_clicked函数
button.clicked.connect(on_button_clicked)window.show()app.exec_() # PySide2 是 exec_
二、效果展示
每当点一次“统计”按钮,终端就会打印一次“按钮被点击了”
三、信号与槽的解释
1、信号(Signal):
信号是组件在特定事件发生时发出的通知
在示例中,button.clicked 就是一个信号,表示 “按钮被点击” 这个事件
2、槽(Slot):
槽是用于接收信号并处理的函数或方法
在示例中,on_button_clicked() 就是一个槽函数,用于处理按钮点击事件
3、信号与槽的连接:
通过 button.clicked.connect(on_button_clicked) 语句将信号与槽关联
当按钮被点击(发出 clicked 信号)时,执行 on_button_clicked 函数
4、信号与槽的作用:
实现了组件之间的解耦通信,按钮不需要知道谁会处理它的点击事件
可以灵活地修改处理逻辑,只需更改槽函数即可
支持一个信号连接多个槽,或多个信号连接同一个槽