QML:Canvas 喜欢一个视图

QML: Canvas like a view

我有一组c++后端提供的矩形,我想画画 它们中的每一个都在 qml 一侧带有一些额外的装饰、颜色不透明度等(尊重矩形的位置和大小)。

我希望有某种特殊类型的视图可以接受包含所有这些矩形的模型,然后在委托中使用它们来定义项目的位置和大小。

我能找到的最好的是 'Canvas',我可以用它来满足我的需要,但也许有更合适的东西?

您可以尝试使用 listview delegate。

也许你可以使用基于QObjectList的模型,如下所述link

https://doc.qt.io/qt-5/qtquick-modelviewsdata-cppmodels.html

在您的 C++ 代码中,使用 Q_PROPERTY

从矩形中公开所需的数据

A Repeater 可以接受模型并在任何 size/position.

处实例化您的矩形
Repeater {
    model: rectangleModel    // Comes from C++

    delegate: Rectangle {
        x: model.x
        y: model.y
        width: model.width
        height: model.height
    }
}