首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用c++向量添加列表模型

如何使用c++向量添加列表模型
EN

Stack Overflow用户
提问于 2018-04-18 01:28:33
回答 1查看 1.1K关注 0票数 0

我是Qt和QML的新手。

我现在正在尝试从c++代码中获取一个列表,并将该列表应用到列表模型中,这样listview就可以显示更新后的列表。

到目前为止,我所做的是构建listview和listmodel以及委托,如下所示:

代码语言:javascript
复制
Rectangle {
id: container
width: 500; height: 400

function getModel()
{
    return environmentModel
}

ListModel {
     id: environmentModel

     ListElement {
         hs: 2
         tp: 2.45
         dp: 2.45
     }
     ListElement {
         hs: 1
         tp: 2.45
         dp: 2.45
     }
     ListElement {
         hs: 3
         tp: 2.45
         dp: 2.45
     }
 }

Component {
    id: environmentDelegate
    Row {
        spacing: 10
        Text { width: 100; text: hs }
        Text { width: 100; text: tp }
        Text { width: 100; text: dp }
    }
}

Component {
    id: environmentHeader
    Row {
        spacing: 10
        Text { width: 100; text: "Hs" }
        Text { width: 100; text: "Tp" }
        Text { width: 100; text: "Dp" }
    }
}
// The delegate for each location in the model:

ListView {
         anchors.fill: parent
         model: environmentModel
         delegate: environmentDelegate
         header: environmentHeader
     }
}

我想做的是

1)我有一个c++函数,它返回一个向量,比如

代码语言:javascript
复制
 class Record {
    int date;
    char time;
    float hs;
    float tp;
    float dp;
 };
 std::vector<Record> getRecords();

2)如果点击按钮,上面的函数getRecords()返回的list会追加到listmodel中。我研究了一点Qt和QML,信号和槽,但仍然没有任何想法。如果有人能做个例子那就太好了。

EN

回答 1

Stack Overflow用户

发布于 2018-04-18 02:37:51

有一些创建模型here的很好的例子。

我将创建一个c++方法来附加到您的模型,并将其声明为Q_INVOKABLE。您可以使用鼠标按下信号调用该方法(请参阅this page上的“公开方法”)。

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

https://stackoverflow.com/questions/49884123

复制
相关文章

相似问题

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