QML

来源:互联网 发布:什么而知也无涯的作者 编辑:程序博客网 时间:2024/05/17 07:39
QQuickView only supports loading of root objects that derive from QQuickItem. If your example is using QML 2, (such as qmlscene) and the .qml file you loaded has 'import QtQuick 1.0' or 'import Qt 4.7', this error will occur. To load files with 'import QtQuick 1.0' or 'import Qt 4.7', use the 

QDeclarativeView class in the Qt Quick 1 module.

https://www.cnblogs.com/gearslogy/p/6495459.html

使用QQuickWidget和QQmlApplicationEngine的不同之处

昨天为了将我们以前制作的产品从QQmlApplicationEngine - based移植到Qt Widgets应用当中,我做了一些修改。其中一个重要的部分就是将以前QQmlApplicationEngine的代码移植到QQuickWidget中。但是我发现其中有不一样的地方,导致我原先的产品并不能工作。

具体来说,我的QML代码中有Qt.createQmlObject这样的函数,并且设置了parent,这样可以实现动态载入Item页面,这在main.cpp中含有QQmlApplicationEngine的代码是没有问题的,但是一移植到QQuickWidget中就出现问题了。原先通过visible来切换显示和隐藏的效果实现不了了。

后面我看了一下文档,文档是这么说的。QQuickWidget禁用了多线程渲染,并且将Qt的Scene Graph渲染的内容渲染到FBO中再显示。这样可以避免和Widgets的stack order问题。但是我想正是由于这个原因(未考证),才会导致上文所说的不一致现象。具体的问题我还需要考察一下,使用QQuickViewQWidget::createWindowContainer()函数来测试一下是否可以解决问题。

原创粉丝点击