为什么Pyside2 QT属性需要是类对象还是实例对象?

时间:2020-08-25 15:47:56

标签: python pyside2

我正在努力提高QT,QML和Pyside2(适用于Python的Qt)的速度,发现我遇到了一些问题,部分原因是我在__init__()中将Properties对象创建为实例,但无法正常工作。一旦将其作为Class对象放置,示例如何向我展示它就起作用了。但是我很难理解为什么。

active_site_prop = Property(int, get_site_num, set_site_num, notify=site_num_changed)

vs

    def __init__(self):
        QObject.__init__(self)
        self.active_site_prop = Property(int, self.get_site_num, self.set_site_num, notify=self.site_num_changed)

我的参考

1 个答案:

答案 0 :(得分:2)

您不能在运行时以及q信号和q插槽中实现q属性,因为在C ++中无法在运行时进行自省,因此MOC(MetaObject编译器)在编译时实现了该自省。绑定可以导出相同的概念,对于q属性,它们的行为与本机属性相似。