pyqt5讲解11:自定义信号和槽
生活随笔
收集整理的這篇文章主要介紹了
pyqt5讲解11:自定义信号和槽
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
步驟:
定義信號
定義槽函數
連接信號和槽函數
發射信號
代碼示例:
# -*- coding: utf-8 -*-"""【簡介】內置信號槽信號槽示例"""from PyQt5.QtCore import QObject , pyqtSignalclass CustSignal(QObject):# 聲明一個無參數的信號signal1 = pyqtSignal()# 聲明帶一個int類型參數的信號signal2 = pyqtSignal(int)# 聲明帶一個int和str類型參數的信號signal3 = pyqtSignal(int,str)# 聲明帶一個列表類型參數的信號signal4 = pyqtSignal(list)# 聲明帶一個字典類型參數的信號signal5 = pyqtSignal(dict)# 聲明一個多重載版本的信號,包括了一個帶int和str類型參數的信號或著帶str參數的信號signal6 = pyqtSignal([int,str], [str])def __init__(self,parent=None):super(CustSignal,self).__init__(parent)# 信號連接到指定槽self.signal1.connect(self.signalCall1)self.signal2.connect(self.signalCall2)self.signal3.connect(self.signalCall3)self.signal4.connect(self.signalCall4)self.signal5.connect(self.signalCall5)self.signal6[int,str].connect(self.signalCall6)self.signal6[str].connect(self.signalCall6OverLoad)# 信號發射self.signal1.emit()self.signal2.emit(1)self.signal3.emit(1,"text")self.signal4.emit([1,2,3,4])self.signal5.emit({"name":"wangwu","age":"25"})self.signal6[int,str].emit(1,"text")self.signal6[str].emit("text")#槽函數 def signalCall1(self):print("signal1 emit")def signalCall2(self,val):print("signal2 emit,value:",val)def signalCall3(self,val,text):print("signal3 emit,value:",val,text)def signalCall4(self,val):print("signal4 emit,value:",val)def signalCall5(self,val):print("signal5 emit,value:",val)def signalCall6(self,val,text):print("signal6 emit,value:",val,text)def signalCall6OverLoad(self,val):print("signal6 overload emit,value:",val)if __name__ == '__main__': custSignal = CustSignal()運行結果:
說明:
pyqtSignal() 信號函數 無參數
pyqtSignal(int) 傳入整數
pyqtSignal([int,str], [str]) 表示可以傳入兩種 格式
信號發射 :emit()
信號6 有兩種傳入方法 如果不指定,默認傳入第一種。指定方法
見下面
self.signal6[int,str].emit(1,“text”)
self.signal6[str].emit(“text”)
代碼來源于:書籍 pyqt5快速開發與實戰
本文 記錄下學習筆記
覺得有用的就記錄
總結
以上是生活随笔為你收集整理的pyqt5讲解11:自定义信号和槽的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 和平之舟大毒枭,劫持中国船,是哪一集?
- 下一篇: 巴西美国俄罗斯印度四个国家中哪个国家出口