Qt Quick 中的 ListView 是一个很有用的组件,它可以快速呈现列表视图,而 C++ 的数据模型也是 Qt 框架中重要的一部分。本文将介绍如何在 Qt Quick 中使用 C++ 模型类来实现 ListView 的数据绑定。
首先,在 C++ 中我们需要创建一个数据模型类,该类需要继承自 QAbstractListModel。假设我们的模型类为 MyModel,代码如下:
class MyModel : public QAbstractListModel
{
Q_OBJECT
public:
explicit MyModel(QObject *parent = nullptr);
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
private:
QList<QString> m_dataList;
};
其中,rowCount 函数返回数据总行数,data 函数返回相应行和列的数据。
接下来,在 QML 中,我们需要通过 QML Register Type 注册我们的数据模型类,以供后面的使用。代码如下:
import QtQuick 2.15
import MyModel 1.0 // 引入 C++ 类
ListView {
width: 200
height: 400
model: myModel
}
MyModel {
id: myModel
}
在上述代码中&#x