PyQt5 自定義訊號槽 不同傳參

2021-09-21 13:35:53 字數 2314 閱讀 2119

1、簡介

自定義的訊號 ,傳遞不同的引數

2、功能實現

# -*- coding: utf-8 -*-

""" 【簡介】

內建訊號槽訊號槽示例

"""from pyqt5.qtcore import qobject , pyqtsignal

class 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) # 過載傳遞不同引數 ,int str

self.signal6[str].connect(self.signalcall6overload) # str

# 訊號發射

self.signal1.emit()

self.signal2.emit(1)

self.signal3.emit(1,"text")

self.signal4.emit([1,2,3,4])

self.signal5.emit()

self.signal6[int,str].emit(1,"text")

self.signal6[str].emit("text")

def signalcall1(self): # 無參函式

print("signal1 emit")

def signalcall2(self,val): # int 型引數

print("signal2 emit,value:",val)

def signalcall3(self,val,text): # int str 引數

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): # 過載的 int str

print("signal6 emit,value:",val,text)

def signalcall6overload(self,val): # 過載的 str

檔案參考:

pyqt 快速開發與實踐

本人鄭重宣告,本部落格所著文章、版權歸權利人持有,本博只做學習交流分享所用,不做任何商業用途。訪問者可將本博提供的內容或服務用於個人學習、研究或欣賞,不得用於商業使用。同時,訪問者應遵守著作權法及其他相關法律的規定,不得侵犯相關權利人的合法權利;如果用於商業用途,須徵得相關權利人的書面授權。若以上文章、的原作者不願意在此展示內容,請及時通知在下,將及時予以刪除

PyQt5 自定義訊號槽函式

1 簡介 自定義訊號槽函式,當訊號傳送的時候,可以呼叫被繫結的槽函式 2 功能實現 coding utf 8 簡介 內建訊號槽示例 from pyqt5.qtcore import qobject,pyqtsignal 訊號物件 class qtypesignal qobject 定義乙個訊號 se...

pyqt5 自定義訊號與槽

coding utf 8 from pyqt5.qt import a 0class window qwidget 宣告無引數的訊號 signal1 pyqtsignal 宣告帶乙個int型別引數的訊號 signal2 pyqtsignal int 宣告帶int和str型別引數的訊號 signal3...

Pyqt5槽函式傳參

qt中訊號發出的引數個數必須大於等於槽函式的引數個數,pyqt使用自定義引數傳遞解決槽函式引數比訊號引數多的問題。使用lambda表示式或functools的partial函式可以傳遞自定義引數給槽函式,自定義引數型別可以是python任意型別。import sys from functools i...