如何在QML文件加载到一个QT5 QGraphicsScene(How to load a QML

2019-10-30 05:30发布

我打算给QML文件加载到QGraphicsScene使用此代码:

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);

错误()返回任何内容和应用程序输出说:

QGraphicsScene::addItem: cannot add null item

Answer 1:

你不能用QGraphicsScene使用QtQuick2(QT5的QtQuick / QML的新版本)。 你需要与QQuickView使用它。

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



Answer 2:

你不能施放此QObject的成QGraphicsObject。 从QQmlComponent对象实例不是QGraphicsObject的子类。 这就是为什么你的施法返回一个0指针。



文章来源: How to load a QML file into a QGraphicsScene in Qt5
标签: qt qt5 qtquick2