0

ゲッターとセッターを実装する Qt 固有の方法はありますか? おそらく、Qt マクロまたは類似のものがあるでしょう。

4

2 に答える 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

標準のセッターとゲッターは次のようになります。

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 にはそのようなものはありませんが、独自のマクロを定義できます (私は時々そのようなことをします)。

于 2013-06-27T14:13:31.227 に答える