QTableView的自定义排序方法?

dai*_*isy 2 qt4 qtableview qstandarditemmodel qt4.7

如何为 QTableView 或模型设置自定义排序方法?(我应该重新实现哪个功能)

默认排序算法是针对 strings 的,我想要一些特定列的数字排序方法。

谢谢。

Kam*_*mek 6

您应该使用QSortFilterProxyModel。您应该重新实现 lessThan 方法。然后您必须为您的代理模型设置 sourceModel,并将您的代理模型设置为您的视图模型

class MyProxyModel: public QSortFilterProxyModel
{
protected:
     bool   lessThan ( const QModelIndex & left, const QModelIndex & right ) const
     {
         // your sorting rules
     }
};

// ... somewhere where your view is accessible
MyProxyModel * m = new MyProxyModel();
m->setSourceModel(yourModel);
yourView->setModel(m);
Run Code Online (Sandbox Code Playgroud)