1

我制作了一个必须在 Windows 上部署的小 QML 应用程序。

我在发布模式下编译它。

我不习惯在 Windows 上部署,并且在我的文件旁边添加了很多 dll 之后(感谢依赖 walker),它没有启动。

我添加了另一个(显然)不需要的 dll,应用程序终于启动了。

但它会启动一个空窗口。

我做错什么了 ?我怎样才能让它工作?

4

1 回答 1

6

问题是您的应用程序必须附带 QML 文件和所有需要的图标。最简单的解决方案是将所有 qml 和图标文件放在 Qt 资源文件 (.qrc) 中,然后简单地执行一个 C++ 启动器,从 qrc 加载 QQuickView:

#include <QGuiApplication>
#include <QQuickView>

int main (int argc, char ** argv) {
    QGuiApplication app (argc, argv);
    QQuickView view     (QUrl("qrc:/main.qml"));
    view.setTitle       (QObject::tr("My App"));
    view.setResizeMode  (QQuickView::SizeRootObjectToView);
    view.showNormal     ();
    return app.exec     ();
}

然后编译整个东西,你的 QML、SVG、PNG 文件将被编译到 C++ 程序中,所以你只需要发布二进制文件而不关心资源!

于 2013-03-20T11:16:02.170 回答