在之前的例子中做一些修改,首先不显示ListViewModel数据,当点击鼠标后,显示数据。
几个要点:
用Q_INVOKABLE 创建C++的方法,这样可以在Qml中直接调用
清除model里面的数据必须用beginResetModel和endResetModel方法将清除代码包起来。
看一下完整的代码:
test.qml
import QtQuick 2.0
import mylist 1.0
ListView {
width: 180; height: 200
model: PeopleListModel {
id: model1
}
delegate: Text {
text: name + ": " + number
}
MouseArea {
anchors.fill: parent
onClicked: model1.reload();
}
}
plugin.cpp
#include
#include
#include
#include
#include
#include
#include
#include
#include
class People {
public:
People(QString const & name, QString const &