我有一个附加到QSqlTableModel的QTableView。我想为用户提供一个在运行时对表进行排序的选项。问题是我有大写和小写的值。所以,当我这样做时:
ui->tableView->sortByColumn(0, Qt::AscendingOrder);
它根据第 0 列对表进行排序,但出于显而易见的原因,以"a"开头的条目保留在以"Z"开头的条目之后(因为 ASCII 中的"Z"= 90 和"a"= 97(。我想要一种方法来使用第 0 列对表进行排序,但忽略大小写
我发现更简单的方法是:
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);
}