目录
一、实战场景
实战场景:Python 中 PyQt6 触发信号
二、主要知识点
三、菜鸟实战
QObject
可以主动触发信号。下面的示例显示了如果触发自定义信号。
import sys
from PyQt6.QtCore import pyqtSignal, QObject
from PyQt6.QtWidgets import QMainWindow, QApplication
class Communicate(QObject):
closeApp = pyqtSignal()
class Example(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.c = Communicate()
self.c.closeApp.connect(self.close)
self.setGeometry(300, 300, 450, 350)
self.setWindowTitle('Emit signal')
self.show()
def mousePressEvent(self, e):
self.c.closeApp.emit()
def main():
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec())
if __name__ == '__main__':
main()
创建了一个叫 closeApp
的信号,在鼠标按下的时候触发,和关闭插槽 QMainWindow
绑定。
扫描二维码关注公众号,回复:
14531748 查看本文章
class Communicate(QObject):
closeApp = pyqtSignal()
外部 Communicate 类的属性 pyqtSignal
创建信号。
self.c = Communicate()
self.c.closeApp.connect(self.close)
自定义信号 closeApp
绑定到 QMainWindow
的关闭插槽上。
def mousePressEvent(self, event):
self.c.closeApp.emit()
在窗口上点击鼠标按钮的时候,触发 closeApp
信号,程序终止。
菜鸟实战,持续学习!