invisibleRootItem
是 Qt 框架中 QAbstractItemModel
类的一个成员函数。它返回一个特殊的根级项(root item),该项在模型的层次结构中是不可见的,常用于存储其他顶级项。
在使用 QAbstractItemModel
实现自定义模型时,可以使用 invisibleRootItem
函数获取根级项,并将其他顶级项添加为其子项。
以下是一个示例:
// 创建自定义模型类 MyModel
class MyModel : public QAbstractItemModel {
public:
// ...
private:
QStandardItem* m_rootItem;
};
// 在构造函数中初始化模型和根级项
MyModel::MyModel(QObject *parent) : QAbstractItemModel(parent) {
m_rootItem = new QStandardItem();
}
// 实现数据模型的接口函数
QModelIndex MyModel::index(int row, int column, const QModelIndex &parent) const {
// ...
}
QModelIndex MyModel::parent(const QModelIndex &child) const {
// ...
}
int MyModel::rowCount(const QModelIndex &parent) const {
// ...
}
int MyModel::columnCount(const QModelIndex &parent) const {
// ...
}
QVariant MyModel::data(const QModelIndex &index, int role) const {
// ...
}
在这个例子中,我们创建了一个名为 MyModel
的自定义数据模型类。在构造函数中,我们通过调用 new QStandardItem()
来初始化 m_rootItem
作为根级项。然后,在实现其他继承自 QAbstractItemModel
的接口函数时,可以使用 m_rootItem
来管理模型的层次结构。
请注意,invisibleRootItem
只适用于基于项的模型(item-based models),如 QStandardItemModel
。对于自定义继承自 QAbstractItemModel
的模型,需要手动创建和管理根级项。
内容由零声教学AI助手提供,问题来源于学员提问