吸气剂和二传手的首选Qt样式

时间:2013-06-27 12:28:52

标签: qt coding-style

是否有特定于Qt的方法来实现getter和setter?也许有Qt宏或类似的东西。

2 个答案:

答案 0 :(得分:2)

Q_PROPERTY

从文档(https://qt-project.org/doc/qt-4.8/properties.html):

  

Qt提供了一个类似于某些编译器供应商提供的复杂属性系统。但是,作为独立于编译器和平台的库,Qt不依赖于非标准编译器功能,如__property或[property]。 Qt解决方案适用于Qt支持的每个平台上的任何标准C ++编译器。它基于元对象系统,它还通过信号和插槽提供对象间通信。

答案 1 :(得分:1)

标准的setter和getter看起来像这样:

void YourClass::setSomeValue(const type &newValue) {
    if (newValue!=someValue) {
        someValue = newValue;
        emit someValueChanged(someValue);
        // some optional invocations to update sizeHint or schedule widget redrawing ... :
        update();
        updateGeometry();
    }
}

type YourClass::someValue() const {
    return someValue;
}

如果你在Objcetive C中寻找像@synthesize这样的东西,Qt中没有这样的东西,但是你可以定义自己的宏(我有时会这样做)。