我已经看到了一些使用 @QtCore.Slot 装饰器的 PySide 插槽示例代码,而有些则没有。自己测试了一下,好像没什么区别。我有理由应该或不应该使用它吗?例如,在以下代码中:
import sys
from PySide import QtCore
# the next line seems to make no difference
@QtCore.Slot()
def a_slot(s):
print s
class SomeClass(QtCore.QObject):
happened = QtCore.Signal(str)
def __init__(self):
QtCore.QObject.__init__(self)
def do_signal(self):
self.happened.emit("Hi.")
sc = SomeClass()
sc.happened.connect(a_slot)
sc.do_signal()
@QtCore.Slot 装饰器没有区别;我可以省略它,调用@QtCore.Slot(str),甚至调用@QtCore.Slot(int),它仍然很好地说,“嗨”。
PyQt 的 pyqtSlot 似乎也是如此。