我是Qt和QML的新手。
我现在正在尝试从c++代码中获取一个列表,并将该列表应用到列表模型中,这样listview就可以显示更新后的列表。
到目前为止,我所做的是构建listview和listmodel以及委托,如下所示:
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++函数,它返回一个向量,比如
class Record {
int date;
char time;
float hs;
float tp;
float dp;
};
std::vector<Record> getRecords();2)如果点击按钮,上面的函数getRecords()返回的list会追加到listmodel中。我研究了一点Qt和QML,信号和槽,但仍然没有任何想法。如果有人能做个例子那就太好了。
发布于 2018-04-18 02:37:51
有一些创建模型here的很好的例子。
我将创建一个c++方法来附加到您的模型,并将其声明为Q_INVOKABLE。您可以使用鼠标按下信号调用该方法(请参阅this page上的“公开方法”)。
https://stackoverflow.com/questions/49884123
复制相似问题