是否有特定于Qt的方法来实现getter和setter?也许有Qt宏或类似的东西。
答案 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中没有这样的东西,但是你可以定义自己的宏(我有时会这样做)。