0

QGraphicsScene我尝试使用以下代码将 qml 文件加载到 a中:

QGraphicsScene* scene = new QGraphicsScene;
QQmlEngine *engine = new QQmlEngine;
QQmlComponent component(engine,"main.qml",QQmlComponent::PreferSynchronous);
qDebug()<<component.errors();
QGraphicsObject *object =
 qobject_cast<QGraphicsObject *>(component.create());
scene->addItem(object);

errors() 不返回任何内容,应用程序输出显示:

QGraphicsScene::addItem: cannot add null item
4

2 回答 2

1

您不能将 QtQuick2(Qt5 的新版 QtQuick/QML)与 QGraphicsScene 一起使用。您需要将它与 QQuickView 一起使用。

如果您需要缩放 QML 文件以使其适合 QQuickView,只需使用QQuickView::setResizeMode将根对象的大小调整为您的视图(QQuickView::SizeRootObjectToView)。

于 2013-08-24T22:28:55.977 回答
0

您不能将此 QObject 转换为 QGraphicsObject。来自 QQmlComponent 的对象实例不是 QGraphicsObject 的子类。这就是你的演员返回 0 指针的原因。

于 2013-08-12T17:42:04.517 回答