小编Sil*_*r22的帖子

如何覆盖Q_Property?

考虑这些类:

Class A : public QObject {
    ...
    Q_PROPERTY(int value READ value WRITE setValue NOTIFY valueChanged)

    virtual int value() { return m_value; }
    void setValue(int v) { m_value = v; Q_EMIT valueChanged();}
    ...

};

Class B : public A {
    ...

    int value() { return m_value * 2; }

    ...
};
Run Code Online (Sandbox Code Playgroud)

访问属性值时,直接调用A类方法而不是B类.

到目前为止,为了解决这个明显的限制,我复制了属性代码并连接了每个类的信号.

这是最好的解决方案吗?

有没有人看到潜在的问题(由于属性具有相同的名称)?

polymorphism qt overriding qproperty qt5.4

1
推荐指数
1
解决办法
1547
查看次数

标签 统计

overriding ×1

polymorphism ×1

qproperty ×1

qt ×1

qt5.4 ×1