Frage

Ich bin mit dem QPropertyEditor von Qt-Apps.org.

ist es möglich, eine Klasse mit sichtbaren Eigenschaften, wo die Menge von Eigenschaften zu erzeugen Runtime-dynamisch ist? So zum Beispiel haben Sie eine Klasse, die einen Vektor von Schwimmern mit einer beliebigen Länge darstellt, die nicht bei der Kompilierung bekannt ist. Sie haben also ein

vector<float> myFloats;

als Klassenmitglied. Wie dies als eine Eigenschaft mit dem Q_PROPERTY Makro belichten. So am Ende mag ich die folgende Ansicht im Eigenschaftseditor-Widget haben:

  • MyClass
    • Wert von myFloats [0]
    • Wert von myFloats [1]
    • Wert von myFloats [2] ... ...

Vielen Dank im Voraus!

War es hilfreich?

Lösung

Durch die Verwendung von dynamischen Eigenschaften ...

In der Klasse u zur Laufzeit der dynamischen Eigenschaften dieser Klasse festlegen

DynamicPropertiesClassForQPropertyEditor()
{
    QVector<int> properties;
    ///.... fill in thevalues
    for (int i=0 ; i!=properties.size() ; ++i )
    {
        const QString propertyName = QString( "value of properties[%1]").arg(i);
        setProperty( qPrintable(propertyName) ,properties.at(i) );
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top