Перечислять свойства QML в Qt C ++?

Я делаю следующее, чтобы визуализировать QML в моем встроенном приложении Qt:

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();

Заранее спасибо!

1

Решение

Вы могли бы написать это:

for (int i = 0; i < dial->metaObject->propertyCount(); ++i) {
QMetaProperty metaProperty = dial->metaobject()->property(i);
qDebug() << metaProperty.name();
}
1

Другие решения


По вопросам рекламы [email protected]