所謂裝飾器訊號與槽,就是通過裝飾器的方法來定義訊號和槽函式。具體使用方法如下:
@pyqt5.qtcore.pyqtslot(引數)defon_傳送者物件名稱_發射訊號名稱(self, 引數):
pass
這種方法有效的前提是下面的函式已經執行:
qtcore.qmetaobject.connectslotsbyname(qobject)
在上面**中,「傳送者物件名稱」就是使用setobjectname函式設定的名稱,因此自定義槽函式的命名規則也可以看成:on + 使用 setobjectname設定的名稱 + 訊號名稱。
具體的使用方法:
importsysfrom pyqt5.qtcore import
pyqtslot, qobject, qmetaobject
from pyqt5.qtwidgets import
class
custwidget(qwidget):
def__init__(self, parent=none):
super().
__init__
(parent)
self.okbutton = qpushbutton("ok"
, self)
#使用setobjectname設定物件名稱
self.okbutton.setobjectname("
okbutton")
layout =qhboxlayout()
layout.addwidget(self.okbutton)
self.setlayout(layout)
qmetaobject.connectslotsbyname(self)
@pyqtslot()
defon_okbutton_clicked(self):
print("
單擊了 ok按鈕")
if__name__ == '
__main__':
win =custwidget()
win.show()
PyQt5 訊號與槽 裝飾器定義槽函式
使用方法 pyqt5.qtcore.pyqtslot 引數 def on 傳送者物件名稱 發射訊號名稱 self,引數 pass 使用方法有效的前提是下面函式執行的情況下 qmetaobject.connectslotsbyname qobecjt 案例 1 from pyqt5 import qt...
qt 槽與訊號
槽就是乙個可以被呼叫處理特定訊號的函式 乙個小的qt類如下 class foo public qobject public slots void setvalue int signals void valuechanged int private int val qt中的元物件系統是用來處理物件間通...
QT訊號與槽
初學qt,覺得理解qt訊號與槽比較重要,qt很多時候都需要用到訊號和槽。發射訊號會觸發相對應的槽函式的執行。乙個訊號可以對應多個槽,多個訊號可以對應乙個槽。訊號和槽是通過connect這個方法進行建立聯絡的。qt中有些類會自帶有一些訊號和槽函式,當然訊號和槽函式也可以自己定義。下面來看下很簡單的 會...