我嘗試添加一些QML對象到我的QGraphcisScene,但它們不顯示在場景中。這是代碼。添加qml對象到QGraphicsScene
QList<QObject*> dataList;
dataList.append(new DataObject("Item 1", "red"));
dataList.append(new DataObject("Item 2", "green"));
QDeclarativeEngine engine ;
QDeclarativeContext *context = engine.rootContext();
context->setContextProperty("myModel", QVariant::fromValue(dataList));
QUrl url("qrc:view.qml") ;
QDeclarativeComponent component(&engine,url) ;
QDeclarativeItem *item = qobject_cast <QDeclarativeItem *>(component.create());
item->setFlag(QGraphicsItem::ItemHasNoContents, false);
myScene->addItem(item);
這裏是我的QML文件:
ListView {
width: 100; height: 100
model: myModel
delegate: Rectangle {
height: 25
width: 100
color: model.modelData.color
Text { text: name }
}
}
在QML文件的請求處添加'import QtQuick 1.0'並檢查日誌內容(必須有一些錯誤報告)。 –
@MarekR qDebug()<< component.errors()給()如果我檢查myScene-> items()。size(),它會顯示添加了一些項目。 –
@MarekR Btw,我們不能使用QgraphicsScene的QtQuick2.0嗎? –