PyQt5最全83 信号与槽之为窗口类添加信号
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
import sys
class WinSignal(QWidget):
"""
为窗口类添加信号
这里实现在一个按钮的槽函数中添加关闭选项,以前的是之间绑定系统的关闭选项
"""
button_clicked_signal = pyqtSignal()
def __init__(self):
super(WinSignal, self).__init__()
self.setWindowTitle('为窗口类添加信号')
self.resize(300, 200)
btn = QPushButton('关闭窗口', self)
# 这个其实就是和信号的通讯
btn.clicked.connect(self.btn_clicked) # 这个是对应的槽函数,名字其实不一样
self.button_clicked_signal.connect(self.btn_close)
def btn_clicked(self):
self.button_clicked_signal.emit()
def btn_close(self):
self.close()
if __name__ == '__main__':
app = QApplication(sys.argv)
example = WinSignal()
print(example.__doc__)
example.show()
sys.exit(app.exec_())
结果
点击后关闭。程序先调用按钮的clicked信号,进入到对应的槽函数,在该槽函数中发出自写的信号,并且该自写的信号连到了系统的关闭函数上。实现关闭不难,需要理解信号和槽的用法。