Qt下qml与QGraphics混合编程
试图将qml加载到QGraphicsScene中。
使用如下代码:
QQmlEngine * engine = new QQmlEngine();
QQmlComponent * component = new QQmlComponent(engine,QUrl(QStringLiteral("qrc:/glowLetter.qml")));
QObject* sss = component->create();
QGraphicsObject *object = qobject_cast<QGraphicsObject *>(sss);
scene()->addItem(object);
无法显示,添加object->setPos(100,100);崩溃
问题:
QGraphicsObject *object = qobject_cast<QGraphicsObject *>(sss);
sss的值正常
object 的值为 0
求解:如何将qml对象加到QGraphicsScene中。
(网上的资料大多使用老版的QML,转换的没错的话,即是如上的方式)
环境 qt 5.7.1 , Qtcreator , c++
附:qml文档:
Rectangle{
id:roo
width: 100
height: 100
color: "#f11010"
gradient: Gradient {
GradientStop {
position: 0.30;
color: "#f11010";
}
GradientStop {
position: 0.80;
color: "#ffffff";
}
}
border.color: "#2c3618"
}