我正在尝试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);
但是,该列未排序。有什么建议么?