Доступ с свойствам QML объекта из C++
QObject *rootObject = engine.rootObjects().first(); - доступ к корневому элементу.
QObject *qmlObject = rootObject->findChild<QObject*>("mainWindow"); - доступ к элементу по имени относительно корневого элемента.
C++ side
#include <QGuiApplication> #include <QQmlApplicationEngine> #include <QDebug> int main(int argc, char *argv[]) { QGuiApplication app(argc, argv); QQmlApplicationEngine engine; engine.load(QUrl(QStringLiteral("qrc:///main.qml"))); // Step 1: get access to the root object QObject *rootObject = engine.rootObjects().first(); QObject *qmlObject = rootObject->findChild<QObject*>("mainWindow"); // Step 2a: set or get the desired property value for the root object rootObject->setProperty("visible", true); qDebug() << rootObject->property("visible"); // Step 2b: set or get the desired property value for any qml object qmlObject->setProperty("visible", true); qDebug() << qmlObject->property("visible"); return app.exec(); } |
QML side
import QtQuick 2.2 import QtQuick.Window 2.1 Window { id: mainWindow objectName: "mainWindow" ... } |
Ссылка: http://stackoverflow.com/questions/23177839/how-can-i-access-my-window-object-properties-from-c-while-using-qqmlapplicatio
0 коммент.:
Отправить комментарий