首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将QAbstractListModel分配给ListModel

如何将QAbstractListModel分配给ListModel
EN

Stack Overflow用户
提问于 2019-11-01 20:17:44
回答 1查看 146关注 0票数 0

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

QML列表模型看起来像

代码语言:javascript
复制
// SelectedStepsModel.qml
import QtQuick 2.0

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

而且,C++类看起来像

代码语言:javascript
复制
class ProductModel : public QAbstractListModel
{
    Q_OBJECT

    Q_PROPERTY(QString product_name READ get_product_name)

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

在main中,

代码语言:javascript
复制
...
        ProductModel* product_model = new ProductModel();
        context->setContextProperty("product_model", QVariant::fromValue(product_model));
...

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

代码语言:javascript
复制
// some other file

    SelectedStepsModel {
        id: selected_model
    }

    selected_model = product_model

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

我做得对吗?将QAbstractListModel赋值给ListModel的正确方式是什么?

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2019-11-01 20:50:55

这里没有“分配”模型这回事:要么使用在QML中声明的模型实例,要么使用提供的模型。选择其中之一。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58659120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档