簡介
pyqt的信號槽機制就是可自定義一個信號,可將信號與一個槽函數綁定,每當發送這個信號時,就將調用綁定的槽函數,並將信號包含的參數傳遞給該槽函數。
代碼示例
from PyQt5.QtCore import pyqtSignal, QObject
class signal(QObject):
# 自定義一個信號
my_sighal = pyqtSignal(str)
# 定義一個發送信號的函數
def run(self, text):
self.my_sighal.emit(text)
class slot(QObject):
# 這個函數將用於綁定信號
def action(self, text):
print("I received that signal:" + text)
if __name__ == '__main__':
# 創建類的對象
send = signal()
receive = slot()
# 將信號與動作進行綁定
send.my_sighal.connect(receive.action)
# 發送信號
send.run("hello")
# 將信號與槽函數解綁
send.my_sighal.disconnect(receive.action)
send.run("hello")
注意:關於信號和槽的類必須繼承於pyqt包含的類