0

我有一个包含 ListModel 的应用程序。我编写了从 QAbstractListModel 派生的 C++ 类。

QML 列表模型看起来像

// SelectedStepsModel.qml
import QtQuick 2.0

ListModel {
    ListElement{
        step_name:""
        step_icon:""

而且,C++ 类看起来像

class ProductModel : public QAbstractListModel
{
    Q_OBJECT

    Q_PROPERTY(QString product_name READ get_product_name)

public:
    enum {
        StepNameRole = Qt::UserRole,
        StepIconRole,
        ...

主要是,

...
        ProductModel* product_model = new ProductModel();
        context->setContextProperty("product_model", QVariant::fromValue(product_model));
...

在其中一个文件(QML 模型被 QML 中的某些函数填充)中,我想用新创建的模型替换该逻辑(因为模型具有所有数据)。

// some other file

    SelectedStepsModel {
        id: selected_model
    }

    selected_model = product_model

注意,这里 selected_model 是 ListModel,product_model 是 QAbstractListModel。但是 selected_model = product_model 失败了。

我在做正确的事情吗?将 QAbstractListModel 分配给 ListModel 的正确方法是什么?

提前致谢。

4

1 回答 1

1

这里没有“分配”模型之类的东西:要么使用在 QML 中声明的模型实例,要么使用提供的模型。选择一个或另一个。

于 2019-11-01T12:50:54.580 回答