PyQt5 訊號與槽機制
阿新 • • 發佈:2021-07-15
說明: 為訊號連線槽函式, 在訊號激發時實現對槽函式的呼叫. 作用: 一個訊號可以繫結多個槽函式, 實現一對多的激發效果. 訊號也可以連線其他的訊號. 跨執行緒時, 必須使用訊號進行引數傳遞.
from PyQt5.QtCore import QObject, pyqtSignal, pyqtSlot class TestSignal(QObject): # 訊號必須定義為類的屬性 # 引數型別 int str list dict signal = pyqtSignal(int, str) def __init__(self): super().__init__() def show1(v1, v2): print(v1, v2) def show2(v1, v2): print(v2, v1) if __name__ == '__main__': test = TestSignal() # 連線槽函式 test.signal.connect(show1) test.signal.connect(show2) # 激發訊號 test.signal.emit(0,'a') # 斷開連線 test.signal.disconnect(show2) test.signal.emit(1,'b') # 斷開全部連線 test.signal.disconnect() test.signal.emit(2,'c')
槽裝飾器 非必要, 目的是將Python方法顯式標記為Qt槽,併為其指定C++簽名 意義未明確
@PyQt5.QtCore.pyqtSlot(引數型別)
def function(value):
pass