QML 的一些小内容:
1. 应用qrc资源中的QML文件
下面这段代码是不会正常工作的,
QmlApplicationViewer viewer;
viewer.setMainQmlFile(QLatin1String(":qml/main.qml"));
因为在 QmlApplicationViewer::setMainQmlFile() 方法中实际执行了代码:
d->view->setSource(QUrl::fromLocalFile(d->mainQmlFile));
fromLocalFile 只能接受一个本地硬盘的文件,正确的写法如下
QmlApplicationViewer viewer;
viewer.setSource(QUrl("qrc:/qml/qml/main.qml"));
这里顺带说明一点,在网上搜到一些文章中使用的时 setSource(QUrl("qrc:qml/main.qml")) 这种写法,但是事实证明这种写法是不正确的,qrc: 这种引用资源的方法应该是在 QML 文件中使用的,在 C++ 只需要冒号就可以了,加上 qrc 前缀反