首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么QT QSqlTableModel不能正确排序中文?

为什么QT QSqlTableModel不能正确排序中文?
EN

Stack Overflow用户
提问于 2020-05-11 12:57:04
回答 1查看 67关注 0票数 0

我用sqlite保存数据,其中一列是中文文本。我在执行“模型->设置排序(0,Qt::升序)”时使用QSqlTableModel+QTableView.But,但第0列的数据是中文的,排序不正确。我知道这可能是编码问题,但我不知道如何修改SQLite的编码。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-11 16:19:14

不是编码问题。可以使用QSortFilterProxyModel。以下是示例代码:

代码语言:javascript
复制
#include <QApplication>
#include <QSortFilterProxyModel>
#include <QTableView>
#include <QtSql/QSqlDatabase>
#include <QtSql/QSqlQueryModel>

int main(int argc, char* argv[]) {
  QApplication a(argc, argv);

  QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
  QString dbPath = QCoreApplication::applicationDirPath() + "/test.db";
  db.setDatabaseName(dbPath);
  db.open();

  QSqlQueryModel* model = new QSqlQueryModel();
  model->setQuery("select * from test");
  QSortFilterProxyModel* sort = new QSortFilterProxyModel();
  sort->setSortLocaleAware(true);
  sort->setSourceModel(model);
  QTableView table;
  table.setModel(sort);
  table.setSortingEnabled(true);
  table.show();
  return a.exec();
}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61722547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档