日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

pyqt5讲解11:自定义信号和槽

發布時間:2024/9/30 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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:自定义信号和槽的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。