Stellen Sie die Qt5-QML-Anwendung bereit

Um die QML-Bereitstellung zu testen, habe ich eine sehr einfache QML-Anwendung erstellt. Hier ist der Code:

main.cpp

#include <QApplication>
#include <QQmlApplicationEngine>
#include <QFile>

int main(int argc, char **argv) {
    QApplication app(argc, argv);
    QQmlApplicationEngine engine;

    QString path = app.applicationDirPath() + "/qml/main.qml";
    if(QFile::exists(path))
        engine.load(path);
    else {
        return 1;
    }
    return app.exec();
}

main.qml

import QtQuick 2.2
import QtQuick.Controls 1.2

ApplicationWindow {
    id: mainWindow
    title: "Test window"
    width: 800
    height: 600
    visible: true
}

Um sicherzugehen, dass keine Entwicklungsbibliothek auf dem System installiert wurde, habe ich eine virtuelle Maschine mit einer reinen Windows XP-Installation eingerichtet. Dann habe ich die Anweisungen wie beschrieben befolgtHier und kopiertalle Qt5 * .dll in das Programmverzeichnis sowie die Plattformen / qwindows.dll und icu * 52.dll. Dependency Walker hat bestätigt, dass keine unterbrochenen Abhängigkeiten mehr vorhanden sind, d. H., Dass alles korrekt eingerichtet sein sollte.

Wenn ich jedoch meine App starte, wird aus bestimmten Gründen nichts angezeigt. Weder ein Fenster noch eine Fehlermeldung. Das Ausführen von der Konsole gibt mir auch keinen Fehler. Trotzdem kann ich sehen, dass meine App im Task-Manager ausgeführt wird, als würde sie im Hintergrund ausgeführt. Das Ausführen der App auf dem Entwicklungscomputer funktioniert problemlos: Die App wird ordnungsgemäß gestartet und ich kann ihre Fenster sehen.

Was mache ich falsch? Wie kann ich eine QML-App bereitstellen, um sicherzustellen, dass sie auf jedem anderen Computer funktioniert, der keine Entwicklungsmaschine ist?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage