C++ QStringListModel排序

C++ QStringListModel排序,c++,qt,C++,Qt,如何对QStringListModel进行排序 非常感谢。使用该方法。QStringListModel::sort方法的替代方法是在存储到模型中的字符串列表上使用QStringList::sort方法。这种方法不如使用QStringListModel::sort有效 你可以使用 然后,您只需使用排序方法对代理模型进行排序: void QSortFilterProxyModel::sort( int column, Qt::SortOrder order = Qt::AscendingOrde

如何对QStringListModel进行排序

非常感谢。

使用该方法。

QStringListModel::sort方法的替代方法是在存储到模型中的字符串列表上使用QStringList::sort方法。这种方法不如使用QStringListModel::sort有效

你可以使用

然后,您只需使用排序方法对代理模型进行排序:

void QSortFilterProxyModel::sort(
  int column, Qt::SortOrder order = Qt::AscendingOrder):
由于字符串列表模型只有一列:

proxyModel->sort(0);
此外,如果要在每次插入新行时对模型进行排序,可以使用连接对proxyModel进行排序:

connect(model, &QStringListModel::rowsInserted,
  this, [proxyModel](){ proxyModel->sort(0); });
QStringListModel::sort方法不是在4.6之前的Qt版本中从QAbstractItemModel::sort重新实现的。您需要Qt4.6才能使排序方法正常工作。
proxyModel->sort(0);
connect(model, &QStringListModel::rowsInserted,
  this, [proxyModel](){ proxyModel->sort(0); });