将qml对象添加到QGraphicsScene
Add qml object to QGraphicsScene
我试图将一些QML对象添加到我的QGraphcisScene中,但它们没有显示在场景中。这是代码。
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 }
}
}
您可以使用addWidget:将QDeclarativeView
中的QML添加到场景中
QDeclarativeView view;
view.setSource( QUrl("qrc:view.qml"));
view.setStyleSheet("background-color:transparent");
QGraphicsProxyWidget * item = myScene->addWidget((QWidget *)view);
对于QtQuick 2.0,您可以使用createWindowContainer
:将QQuickView
嵌入到小部件中
QQuickView *view = new QQuickView();
...
QWidget *container = QWidget::createWindowContainer(view);
container->setMinimumSize(...);
container->setMaximumSize(...);
container->setFocusPolicy(Qt::TabFocus);
QGraphicsProxyWidget * item = myScene->addWidget((QWidget *)container);
相关文章:
- QGraphicsItems not showing up QGraphicsScene
- Qt QGraphicsProxyWidget 与 QGraphicsScene 的交互
- Qt将许多QGraphicsPixmapItem添加到QGraphicsScene中
- QGraphicsScene 中的 QPushButton 需要双击而不是单击
- 在 QWidget 中的 QGraphicsScene 中绘制
- 在 QGraphicsScene 中组织项目
- QGraphicsItem::p aint(): 如何检查 QGraphicsScene 是否已打印
- 子类QGraphicsScene的错误
- QGraphicsScene项目在两次(x2)位置绘制
- 图形项目的QgraphicsScene中的可拖动像素
- Qt中是否有QLabel::setScaledContent等效函数用于QGraphicsScene?
- 无法读取 QGraphicsScene 的内容
- 围绕QgraphicsScene移动QGraphicsView
- 有没有办法停止QGraphicsScene
- 如何在QGraphicsScene上绘制填充多边形
- Qt QGraphicsScene::setSceneRect() 实际上并没有设置场景 rect
- Qt Application with QTabWidget, QGraphicsScene and QPushButt
- Qt - QGraphicsScene 和 QGraphicsView 不更新更改?
- 为什么不能从 QVector 将 Item 添加到 QGraphicsScene <QGraphicsItem>中?
- 将QGraphicsScene嵌入QML中