2013-06-27 3 views

Répondre

2

Q_PROPERTY

De la documentation (https://qt-project.org/doc/qt-4.8/properties.html):

Qt fournit un système de propriété sophistiqué semblable à ceux fournis par certains fournisseurs de compilateur. Cependant, en tant que bibliothèque indépendante du compilateur et de la plate-forme, Qt ne s'appuie pas sur des fonctionnalités de compilation non standard telles que __property ou [property]. La solution Qt fonctionne avec n'importe quel compilateur C++ standard sur toutes les plates-formes supportées par Qt. Il est basé sur le système Meta-Object qui fournit également une communication inter-objets via des signaux et des slots.

1

normalisateur et getter ressemble à ceci:

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; 
} 

si vous cherchez quelque chose comme @synthesize dans Objcetive C il n'y a pas une telle chose dans Qt, mais vous pouvez définir votre propre macro (je quelque chose comme ça parfois).

+0

Ceci est la substance, pas de style, mais merci pour le modèle utile. – Bruce

+0

question était "moyen de mettre en œuvre getters et setters" donc je ne comprends pas vos objections. –

+0

Je cherchais l'utilisation de Q_PROPERTY qui correspond plus à Qt qu'à votre solution qui est plus à la vanille C++. – Bruce