如何排序 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);
}
我有一个 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);
}