Python - PyQt中信號——槽函數的使用

1、PyQt中信號的定義

from PyQt5.QtCore import Qt, pyqtSignal        // 引入模塊

class class TestSignal(QWidget):
    
    # 創建自定義信號,只能定義成類變量#
    mySignal_1 = pyqtSignal()      # 創建信號,用於發送按鈕已點擊信號;
    mySignal_2 = pyqtSignal([str]) # 用於發送默認文件打開路徑信號;信號有一個str類型的參數

如上所示,首先引入對應的模塊pyqtSignal,然後在定義的類中定義信號。需要注意的是,信號只能定義成類變量,而不能定義成對象變量,最直觀的就是在定義信號時,沒有self.。 

2、PyQt中槽函數的定義

槽函數的定義就是普通的函數定義,但是需要注意的是,如果槽函數對應的信號有參數,那麼槽函數也要有對應的參數,可以參考如下:

def Slot_mySignal_1(self):                // 對應的信號無參

    // do something

def Slot_mySignal_2(self, str):        // 對應的信號有[str]類型的參數

    // do something

3、關聯信號——槽函數

信號與槽函數的關聯與QT中類似,都是用connect函數,但是用法又與QT中不同,在PyQt中的用法如下:

Test.mySignal_1.connect(self.Slot_mySignal_1)
Test.mySignal_2.connect(self.Slot_mySignal_2)

4、示例

 示例如下:

from PyQt5.QtCore import Qt, pyqtSignal        // 引入模塊

class class TestSignal(QWidget):
    
    # 創建自定義信號,只能定義成類變量#
    mySignal_1 = pyqtSignal()      # 創建信號,用於發送按鈕已點擊信號;
    mySignal_2 = pyqtSignal([str]) # 用於發送默認文件打開路徑信號;信號有一個str類型的參數

    def __init__(self):                        // 初始化函數
        
        Test.mySignal_1.connect(self.Slot_mySignal_1)
        Test.mySignal_2.connect(self.Slot_mySignal_2)

    def Slot_mySignal_1(self):                 // 對應的信號無參

        // do something

    def Slot_mySignal_2(self, str):           // 對應的信號有[str]類型的參數

        // do something

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章