是否有特定于 Qt 的方法来实现 getter 和 setter?也许有 Qt 宏或类似的东西。
问问题
2936 次
2 回答
2
Q_PROPERTY
从文档(https://qt-project.org/doc/qt-4.8/properties.html):
Qt 提供了一个复杂的属性系统,类似于某些编译器供应商提供的属性系统。然而,作为一个独立于编译器和平台的库,Qt 不依赖非标准的编译器特性,如 __property 或 [property]。Qt 解决方案适用于 Qt 支持的每个平台上的任何标准 C++ 编译器。它基于元对象系统,该系统还通过信号和槽提供对象间通信。
于 2013-06-27T12:37:43.357 回答
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;
}
如果你正在寻找类似@synthesize
Objcetive C 中的东西,Qt 中没有这样的东西,但你可以定义自己的宏(我有时会这样做)。
于 2013-06-27T14:13:31.227 回答