main.qml:
ApplicationWindow {
visible: true
visibility: "Maximized"title: "My title"
WebView {
id: webView
objectName: "webView"anchors.fill: parent
url: initialUrl
}
}
main.cpp:
QQmlApplicationEngine engine;
QQmlContext *context = engine.rootContext();
context->setContextProperty(QString("initialUrl"), "http://google.com/");
QQmlComponent component(&engine, QUrl("qrc:/qml/main.qml"));
qDebug() << component.status();
component.create();
Это работает на Linux и Android, но на Windows у меня есть эта ошибка:
warning: QQmlComponent::Status(Ready) // This "qDebug() << component.status();" from my code
warning: QQmlComponent: Component is not ready
warning: QObject::connect: invalid null parameter
warning: QObject::connect: invalid null parameter
warning: QObject::connect: invalid null parameter
warning: QObject::connect: invalid null parameter
Program received signal SIGSEGV, Segmentation fault.
0x6e9cd3dd in Qt5Quick!?setParentItem@QQuickItem@@QAEXPAV1@@Z () from C:\myprog-dist\Qt5Quick.dll
Как это исправить?
Qt 5.7.0 (компилятор msvc 2015)
Решение:
Не используйте windeployqt.
Установите Qt 5.7 для Windows.
Используйте Process Explorer и ручное копирование зависимостей.
Других решений пока нет …