Обычно этот мастер используется для создания проектов только в QML.
Средство просмотра QmlApplication - это просто облегченная оболочка C ++ вокруг вашего файла QML, поэтому создается двоичный файл и загружается файл QML.
Не так много магии, чтобы сделать это самостоятельно, см .:
https://doc.qt.io/archives/qt-4.7/qtbinding.html
#include <QApplication>
#include <QDeclarativeView>
#include <QDeclarativeContext>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QDeclarativeView view;
QDeclarativeContext *context = view.rootContext();
context->setContextProperty("backgroundColor",
QColor(Qt::yellow));
view.setSource(QUrl::fromLocalFile("main.qml"));
view.show();
return app.exec();
}
А с помощью setContextProperty вы можете рекламировать глобальные типы QML через cpp ...
Конечно, вы также можете повторно использовать QmlApplicationViewer. Mainclass QmlApplicationViewer является производным от QDeclarativeView, поэтому у вас есть прямой доступ к контексту в этом классе.
Так же, как в примере выше, должно быть возможно использовать:
QDeclarativeContext *context = this.rootContext();
context->setContextProperty("backgroundColor", QColor(Qt::yellow));
где-нибудь в конструкторе QmlApplicationViewer или позже (пока не пробовал, дайте мне знать, если он не работает).