我正在尝试将QT Quick
(QML
)与Visual Studio 2015
和CMake
一起使用。我开始用一个例子" QT Quick Controls - Gallery"并将其转移到CMake。它在QT Creator
(使用Visual Studio'编译器)中工作正常,但在Visual Studio(使用CMake GUI
生成的解决方案)中没有工作:
QQmlApplicationEngine failed to load component
qrc:/main.qml:-1 File not found
我试图找出问题并发现了这个很好的例子:https://github.com/mattfife/QtQuick-with-cmake,它在QT Creator中有效(经过一些修改),但在Visual Studio中却有完全相同的问题。
qml.qrc
文件是这样的:
<RCC>
<qresource prefix="/">
<file>main.qml</file>
</qresource>
</RCC>
对于这两种环境(QT Creator和Visual Studio),我在构建目录中有一个文件src/qml.qrc.depends
,其内容与之前的qml文件完全相同。
main.cpp
中的重要部分:
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
if (engine.rootObjects().isEmpty())
return -1;
如果我删除了CMakeLists.txt
文件中的下一行,则可以在QT Creator中重现该错误:
qt5_add_resources(qml_QRC src/qml.qrc)
知道如何解决或尝试什么?例如,我不知道如何调试这个QQmlApplicationEngine
对象。
答案 0 :(得分:1)
确保在项目中添加了生成的文件(我假设它是qrc_qml.cpp)。在Visual Studio中,右键单击qml.qrc时,会出现一个Compile选项(或Ctrl + F7)。这将从qml.qrc生成一个cpp文件。它通常在GeneratedFiles文件夹中生成。