1. 程式人生 > 其它 >PYQT5學習筆記( N+ 1) 訊號與槽 (內建訊號與槽的使用)

PYQT5學習筆記( N+ 1) 訊號與槽 (內建訊號與槽的使用)

技術標籤:PYQTpython

實現效果
在這裡插入圖片描述

#自定義訊號與槽的使用
#------------------------------------------------
from PyQt5.QtCore import QObject , pyqtSignal
#定義了訊號 傳送按鈕 模組 引用QOject 工程模組 PYQT訊號模組

##訊號物件
class QTypeSignal(QObject):    
    ##定義一個訊號
         #定義一個類 訊號類 繼承父 OBJECT工程
    sendmsg = pyqtSignal( object)
        #從OBject中生成一個訊號 
def __init__(self): #初始化self ? super(QTypeSignal, self).__init__() def run( self): ##發射訊號 self.sendmsg.emit('Hello PyQt5') ##槽物件 class QTypeSlot(QObject):##定義了槽物件 def __init__( self): # 初始化 1 super(QTypeSlot, self) .__init__() #初始化2 初始化 1和初始化 2是 連線在一起的
##槽物件中的函式 def get(self, msg): #利用get槽函式 把self提取msg print("Qslog get smg =>" + msg) #再把msg列印上去 if __name__ == '__main__': #主函式 send = QTypeSignal() #用 send繼承QTypeSignal類 slot = QTypeSlot(); #用 send繼承QTypeSlot類 send.run() #呼叫 QTypeSignal 中 的run函式 #因為沒有連線 所以他沒有跑起來
print('--將訊號綁在了槽函式上面') #將訊號綁在槽函式上面 send.sendmsg.connect(slot.get) #將訊號與槽連結在一起 send.run() # 呼叫跑起來 #2 print('--將訊號與槽函式的連結斷開') #斷開後 send.sendmsg.disconnect(slot.get) #他也沒有跑起來 send.run()