步驟:
定義訊號
定義槽函式
連線訊號和槽函式
發射訊號
**示例:
# -*- 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)
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(
) self.signal6[
int,
str]
.emit(1,
"text"
) self.signal6[
str]
.emit(
"text"
)#槽函式
defsignalcall1
(self)
:print
("signal1 emit"
)def
signalcall2
(self,val)
:print
("signal2 emit,value:"
,val)
defsignalcall3
(self,val,text)
:print
("signal3 emit,value:"
,val,text)
defsignalcall4
(self,val)
:print
("signal4 emit,value:"
,val)
defsignalcall5
(self,val)
:print
("signal5 emit,value:"
,val)
defsignalcall6
(self,val,text)
:print
("signal6 emit,value:"
,val,text)
defsignalcall6overload
(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 自定義訊號槽函式
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自定義訊號源
定義乙個訊號源有4個方面要注意 1.定義訊號源 a pyqtsignal str int,str 這裡特別使用訊號源過載的情況加以說明。如上就是訊號源a的過載,乙個可以傳送str引數,另乙個可以傳送 int,str 引數。注意這相當於宣告了兩個同名但引數不同的訊號源。2.鏈結 槽 a int,str...