自定义鼠标右击信号
class Btn(QPushButton):
rightClicked = pyqtSignal([str], [int], [int, str])
def mousePressEvent(self, event):
super().mousePressEvent(event)
if event.button() == Qt.RightButton:
self.rightClicked[str].emit(self.text())
self.rightClicked[int].emit(666)
self.rightClicked[int, str].emit(521, 'haha')
btn = Btn('按钮', self)
btn.rightClicked.connect(lambda value: print('被右击了', value))
btn.rightClicked[int].connect(lambda value: print('被右击了', value))
btn.rightClicked[int, str].connect(lambda _int, _str: print('被右击了', _int, _str))
装饰器信号
def test(self):
btn = QPushButton('按钮', self)
btn.setObjectName('myBtn')
QMetaObject.connectSlotsByName(self)
@pyqtSlot(bool)
def on_myBtn_clicked(self, val):
print('装饰器信号触发了:', val)