我正在使用Qt 5.5创建一个小应用程序。在应用程序中,我手动创建一个组件,如下所示:
QQmlComponent component(engine, QUrl("qrc:/Box.qml"));
assert(component.isReady());
我的 .qrc 文件包含在 .pro 文件中,如下所示:
RESOURCES += qml.qrc
当我从Qt创建器运行时,一切正常。但是,当我使用 macdeployqt 工具部署应用程序并尝试运行该应用程序时,我得到了断言命中。果然,我试图在.isReady()周围放一个循环,它将永远挂起。
这样做的正确方法是什么?我的 qml 组件在 Qt 创建器中工作正常,那么为什么它在部署中失败?
谢谢
事实证明这很简单。您需要将-qmldir=<path to your qml files>
传递给macdeployqt
.如果您有 QML 文件,它实际上是必需的,但我不知何故没有在文档中看到它。