转载地址:http://blog.csdn.net/lynfam/article/details/7078540
QML 的一些小内容:
1. 应用qrc资源中的QML文件
下面这段代码是不会正常工作的,
[cpp] view plain copy
QmlApplicationViewer viewer;
viewer.setMainQmlFile(QLatin1String(":qml/main.qml"));
因为在 QmlApplicationViewer::setMainQmlFile() 方法中实际执行了代码:
[cpp] view plain copy
d->view->setSource(QUrl::fromLocalFile(d->mainQmlFile));
fromLocalFile 只能接受一个本地硬盘的文件,正确的写法如下
[cpp] view plain copy
QmlApplicationViewer viewer;
viewer.setSource(QUrl("qrc:/qml/qml/main.qml"));
这里顺带说明一点,在网上搜到一些文章中使用的时 setSource(QUrl("qrc:qml/main.qml")) 这种写法,但是事实证明这种写法是不正确的,qrc: 这种引用资源的方法应该是在 QML 文件中使用的,在 C++ 只需要冒号就可以了,加上 qrc 前缀反而找不到了。
我要收回这句话,今天发现还是自己的代码错了 ——我将 main.qml 文件放到了qrc文件里一个名为 /qml 的prefix下面,因此引用 main.qm