gpt4 book ai didi

python - PyQt4 @pyqtSlot : what is the result kwarg for?

转载 作者:太空狗 更新时间:2023-10-29 21:47:14 24 4
gpt4 key购买 nike

通过阅读this , 出现两个问题:

1.它说

it is sometimes necessary to explicitly mark a Python method as being a Qt slot

虽然我总是使用@pyqtSlot 装饰器,因为它说:

Connecting a signal to a decorated Python method also has the advantage of reducing the amount of memory used and is slightly faster

我问自己:在哪些具体情况下是必要的?和:不使用 @pyqtSlot 装饰器有什么好处吗?

2。result关键字参数,它的作用是什么?

@pyqtSlot(int, result=int)
def foo(self, arg1):
""" C++: int foo(int) """

它看起来像返回值的类型,但据我所知,您在发出信号时无法检索返回值。

对此有什么想法吗?

最佳答案

  1. 由于 PyQt 架构,速度更快。 PyQt 将 python 槽转换为 C++ 槽,以便与 Qt 框架通信。当您将 Python 方法显式标记为 Qt 槽并为其提供 C++ 签名时,PyQt 代码不必自己猜测 C++ 签名,因为它已经指定。这可能会提高重型项目的性能。

  2. 仅当您想将插槽作为普通函数调用时才需要返回值。

编辑:似乎QMetaObject.invokeMethod方法执行槽并使用它的返回值。

关于python - PyQt4 @pyqtSlot : what is the result kwarg for?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11272951/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com