1

私のQt組み込みアプリでQMLをレンダリングするために次のことをしています:

QDeclarativeView *view = new QDeclarativeView(this);
view->setSource(QUrl::fromLocalFile("dial.qml"));
view->show();
QObject *dial = view->rootObject();

ルート項目で定義されているすべてのプロパティ値を列挙する方法はありますか?

たとえば、QML がある場合:

import QtQuick 1.0
Item {
  id: root
  property real dial_value : 0
  property real dial_length: 0
  property real background_opacity: 1
  etc, etc
}

これらの文字列のリストを持つことになるQtメソッドはありますか:

dial_value
dial_length
background_opacity

次のことを試しましたが、リストが空です:

QList<QByteArray> list = dial->dynamicPropertyNames();

前もって感謝します!

4

1 に答える 1

1

あなたはそれを書くことができます:

for (int i = 0; i < dial->metaObject->propertyCount(); ++i) {
    QMetaProperty metaProperty = dial->metaobject()->property(i);
    qDebug() << metaProperty.name();
}
于 2014-05-24T02:19:40.180 に答える