当前位置: 代码迷 >> QT开发 >> QT 中不能按汉语查询,查询结果显示中文为乱码
  详细解决方案

QT 中不能按汉语查询,查询结果显示中文为乱码

热度:71   发布时间:2016-04-25 03:49:03.0
QT 中不能按中文查询,查询结果显示中文为乱码
为了能使用中文,我在主函数中如下设置:
int main(int argc, char *argv[])
{
    QTextCodec * codec=QTextCodec::codecForName("gbk");
    QTextCodec::setCodecForCStrings(codec);
    codec=QTextCodec::codecForName("gb2312");
    QTextCodec::setCodecForTr(codec);
    QApplication a(argc,argv);

    if(!connectiondatabase())
    {
        return false;
    }
    login log;
    log.show();

    
    return a.exec();
}

我添加“按姓名查询”功能,均不能输入汉字查询,英文是可以的,并且现实的结果也不能显示中文,中文字段均显示为乱码,大家看看什么地方出问题啦,先谢谢啦。
下面是槽函数的代码:
QString name=ui->name_lineEdit->text();
    QSqlQueryModel *model = new QSqlQueryModel;
        model->setQuery("select guide_id,guide_name,guide_sex,guide_phone,guide_email,guide_loc_id,guide_work_year,guide_state,guide_good,guide_ad from tb_guide where guide_name='"+name+"'");
        model->setHeaderData(0, Qt::Horizontal, tr("导游标识"));
        model->setHeaderData(1, Qt::Horizontal, tr("导游姓名"));
        model->setHeaderData(2, Qt::Horizontal, tr("导游性别"));
        model->setHeaderData(3, Qt::Horizontal, tr("导游电话"));
        model->setHeaderData(4, Qt::Horizontal, tr("导游email"));
        model->setHeaderData(5, Qt::Horizontal, tr("导游所在位置"));
        model->setHeaderData(6, Qt::Horizontal, tr("导游工作年限"));
        model->setHeaderData(7, Qt::Horizontal, tr("导游状态"));
        model->setHeaderData(8, Qt::Horizontal, tr("导游擅长"));
        model->setHeaderData(9, Qt::Horizontal, tr("导游广告语"));
        QTableView *view = new QTableView;
        view->setModel(model);
        view->show();
  相关解决方案