通过阅读这篇文章,我有两个问题:
1.它说:
2.结果关键字参数,它的目的是什么?
似乎是返回值类型,但据我所知,在发射信号时无法检索返回值。对此有什么想法吗?
1.它说:
虽然我总是使用@pyqtSlot装饰器,因为它说:有时需要明确标记Python方法为Qt slot
我问自己:在哪些特定情况下是必要的?是否有不使用@pyqtSlot装饰器的优点?连接信号到装饰的Python方法还具有减少内存使用量和稍微更快的优点
2.结果关键字参数,它的目的是什么?
@pyqtSlot(int, result=int)
def foo(self, arg1):
""" C++: int foo(int) """
似乎是返回值类型,但据我所知,在发射信号时无法检索返回值。对此有什么想法吗?
result=
关键字参数的说明:如果您的槽函数返回一个值,则在 PyQt D-Bus 绑定中,该参数是“必需”的。因此,对于您想通过 D-Bus 公开的函数,它接受一个字符串并返回一个整数,您应该使用pyqtSlot(str, result=int)
来修饰该函数。如果没有包含result=int
,则通过 D-Bus 的调用将不会返回任何值。我之所以提到这一点,是因为最近我花了很长时间来调试这个问题(请参见 http://stackoverflow.com/questions/11731709/how-does-one-expose-methods-and-properties-on-dbus-using-a-qdbusabstractadaptor)。 - evadeflow