找回密码
 立即注册
收起左侧

数据库与QComboBox一起使用,中文显示乱码

7
回复
10193
查看
[复制链接]
累计签到:2 天
连续签到:1 天
来源: 2015-4-24 15:11:06 显示全部楼层 |阅读模式

马上注册,查看详细内容!注册请先查看:注册须知

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
《Qt及Qt Quick开发实战精解》第四章中使用QSqlQueryModel与QComboBox来显示产品类型,按照书中所讲例子,运行后乱码。
但是我用《Qt Creator快速入门》中的一个小例子,将QSqlQueryModel与QTableView一起使用来显示一个学生表,则不出现中文乱码。
回复

使用道具 举报

累计签到:256 天
连续签到:1 天
2015-4-24 15:28:24 显示全部楼层
QCombobox::addItem(const QString &text,...,...)
貌似要给他QString类型的吧
回复 支持 反对

使用道具 举报

累计签到:2 天
连续签到:1 天
2015-4-24 15:33:33 显示全部楼层
z55716368 发表于 2015-4-24 15:28
QCombobox::addItem(const QString &text,...,...)
貌似要给他QString类型的吧

    query.exec("create table type(id varchar primary key, name varchar)");
    query.exec(QString("insert into type values('00', '请选择类型')"));
    query.exec(QString("insert into type values('01', '电视')"));
    query.exec(QString("insert into type values('02', '空调')"));

    QSqlQueryModel *typeModel = new QSqlQueryModel(this);
    typeModel->setQuery(QObject::tr("select name from type"));
    ui->sellTypeComboBox->setModel(typeModel);
    以上是相关代码,倒是没有用到addItem()函数。
回复 支持 反对

使用道具 举报

累计签到:256 天
连续签到:1 天
2015-4-24 15:39:58 显示全部楼层
我还没有给Combobox加数据库的东西 这个你百度找找 我昨天好像看到过
回复 支持 反对

使用道具 举报

累计签到:410 天
连续签到:1 天
2015-4-24 22:33:37 显示全部楼层
出现乱码就设置编码格式
QTextCodec类
回复 支持 反对

使用道具 举报

累计签到:2 天
连续签到:1 天
2015-4-25 16:56:12 显示全部楼层
a408815041 发表于 2015-4-24 22:33
出现乱码就设置编码格式
QTextCodec类

我尝试了不同的组合,都解决不了,哎,麻烦呐
回复 支持 反对

使用道具 举报

累计签到:40 天
连续签到:1 天
2015-4-26 01:29:05 显示全部楼层
query.value(0).toString().               
回复 支持 反对

使用道具 举报

累计签到:23 天
连续签到:1 天
2015-11-23 21:23:17 显示全部楼层
是那个建议数据库管理例子么?!
    // 必须在创建数据库之前使用,不然无法在数据库中使用中文
    //QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
    //QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
QT5取消了setCodecForTr等几个函数~

把文件保存为UTF8格式就可以了~
数据库格式也用默认UTF8格式就最简单~
俺这里用的是QT5.5修改后就测试OK~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了