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