如何排序 QTableView 忽略大小写

How to sort QTableView ignoring case

我有一个 QTableView 附加到 QSqlTableModel。我想为用户提供在 运行 时对 table 进行排序的选项。问题是我有大写和小写的值。所以,当我这样做时:

ui->tableView->sortByColumn(0, Qt::AscendingOrder);

它按照第 0 列对 table 进行排序,但是以 'a' 开头的条目保留在以 'Z' 开头的条目之后,原因很明显(因为 'Z' = 90 和'a' = ASCII 中的 97)。我想要一种使用第 0 列但忽略大小写

对 table 进行排序的方法

我找到的更简单的方法是:

void MainWindow::on_actionAuthor_descending_triggered()
{
QSortFilterProxyModel *m = new QSortFilterProxyModel(this);

m->setSourceModel(model);
m->setSortCaseSensitivity(Qt::CaseInsensitive);

m->sort(1, Qt::DescendingOrder);

ui->tableView->setModel(m);
}