作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 QFileSystemModel 通过 QTreView 表示文件结构。一切正常,但我需要在树的某个级别添加额外的行。例如现在是:
-根
--row1
--row2
--row3
所有这些行从文件系统映射文件夹/文件。
我需要:
-根
--row1
--row2
--row3
--自定义行
所以自定义行不代表文件系统中的任何数据。我只需要在这里添加我自己的数据。
我从互联网上阅读了很多东西,人们建议使用代理模型并重新实现 rowCount()、data() 和 flags() 函数。我试图这样做(使用从 QSortFilterProxyModel 派生的类),但我从来没有在 data() 和 flags() 函数中得到我的行。似乎它需要从源模型中计算。
QVariant AddonFilterModel::data (const QModelIndex & index, int role) const
{
if(role == Qt::DisplayRole && index.row() == FilterModel::rowCount(index))
{
return QString("Add-Ons");
}
return FilterModel::data(index, role);
}
Qt::ItemFlags AddonFilterModel::flags(const QModelIndex & index) const
{
if (!index.isValid())
return 0;
if (index.row() == FilterModel::rowCount(index))
{
return Qt::ItemIsEnabled | Qt::ItemIsSelectable;
}
return FilterModel::flags(index);
}
int AddonFilterModel::rowCount(const QModelIndex &parent) const
{
int count = FilterModel::rowCount(parent);
if(parent == this->getRootIndex())
{
return count+1;
}
return count;
}
最佳答案
迟到的答复。您必须继承 Qabstractitemmodel。
关于qtreeview - 如何在 QFileSystemModel 中添加自定义行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8885817/
我是一名优秀的程序员,十分优秀!