我尝试将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
对象。
1条答案
按热度按时间bf1o4zei1#
确保你在你的项目中添加了一个生成的文件(我假设在你的例子中是qrc_qml. cpp)。在Visual Studio中,当你右键单击qml.qrc时,会有一个编译选项(或Ctrl+F7)。这将从你的qml. qrc生成一个cpp文件。它通常在GeneratedFiles文件夹中生成。