【发布时间】:2014-01-13 16:51:57
【问题描述】:
我正在尝试按字母顺序对 QStandardItemModel 特定列中的项目进行排序。
为此,我使用了一个派生自 QSortFilterProxyModel 的类,并且我正在重新实现 lessThan 方法
bool MyProxy::lessThan(const QModelIndex &left, const QModelIndex &right) const
{
QVariant leftData = sourceModel()->data(left);
QVariant rightData = sourceModel()->data(right);
if( left.column() == 1)
{
return leftData.toString() < rightData.toString();
}
return false;
}
这是我将模型附加到代理模型的方式
MyStandardItemModel=new QStandardItemModel();
MyProxy= new MyProxy();
MyProxy->setSourceModel(pModelContacts);
ui.ContactView->setModel(MyProxy);
将项目添加到模型后,这是我要做的排序
MyProxy->sort(1);
但是,该列未排序。有什么建议吗?
【问题讨论】:
标签: c++ qt qtgui qstandarditemmodel qsortfilterproxymodel