pyqt5:从插槽返回 QObject

Posted

技术标签:

【中文标题】pyqt5:从插槽返回 QObject【英文标题】:pyqt5: return QObject from slot 【发布时间】:2014-05-16 13:16:43 【问题描述】:

我试图在 pyqt 5 中向 QML 公开一个方法,我需要它来返回一个自定义 QObject。无论如何,我似乎无法解决这个问题。下面的 sn-p 大致显示了我正在尝试做的事情。我尝试将结果参数更改为 QObject、“QObject”和各种其他类型。每个都给我一个不同的错误消息,或者如果没有错误,QML 接收 null 而不是对象。我也尝试将 Bar 注册为一种类型,但仍然没有帮助。

返回这样的自定义对象的正确方法是什么? (注意:我们以前在 C++ 中使用过这个功能。)

class Bar(QObject):
    # etc.

bar = Bar()

class Foo(QObject):
    @pyqtSlot(int, result=QObject)
    def foo(self, arg1):
        return bar

【问题讨论】:

【参考方案1】:
class Foo(QObject):
    @pyqtSlot(int, result=QObject)
    def foo(self, arg1):
        sip.transferto(bar, bar)
        return bar

【讨论】:

sip 是从哪里来的?没有任何解释,这无济于事。

以上是关于pyqt5:从插槽返回 QObject的主要内容,如果未能解决你的问题,请参考以下文章

PyQt5 线程、信号和插槽。连接错误

PYQT5 - 插槽函数不采用默认参数 [重复]

PyQt5:使用插槽/信号时,self 是 NoneType

带有 Matplotlib 的 PyQT5 插槽没有效果

网址未使用不同类中的信号和插槽 PyQt5 定义

Python3 memory_profiler,同时使用lambda表达式连接PyQt5中的插槽