我有一个 QObject,它用作控制器。这个 QObject 有一个 QPushButton 的引用。此 QOjbect 有一个方法设置为在 QPushButton 的单击事件时触发。
前任:
class MyController(QObject):
def __init__(self, parent=None):
super(MyController, self).__init__(parent)
self.some_ref = ....
self.button = self.some_ref.button (returns QPushButton)
self.button.clicked.connect(self.button_clicked)
# @Slot(type)
def button_clicked(self):
print 'button clicked: ', self.sender()
# print 'button clicked (no sender req.)
在这里, button_clicked 不会被触发。@Slot()
我试过用, @Slot(QObject)
, @Slot(type)
,来装饰它@Slot(str)
,@Slot(int)
但还是不行。
我究竟做错了什么?
如果我使用..clicked.connect(lambda: self.button_clicked)
它当然可以。所以我认为这是一种类型不匹配,但@Slot(..)
装饰不应该修复它吗?
谢谢你。