当前位置: 代码迷 >> QT开发 >> TableView不显示的有关问题
  详细解决方案

TableView不显示的有关问题

热度:79   发布时间:2016-04-25 04:23:20.0
TableView不显示的问题
用tableview显示数据库里的表进行增删改查,我已经写了一个数据库里的表的增删改查了,正常,
现写里一个数据库里一张表,代码一样,但是tableview不显示,两种表的区别就是第二张表的表名
有中文和字符,并且记录较多,每条记录内容也多有中文和字符,到底可能是什么问题呢
------最佳解决方案--------------------
应该字符串编码问题,tablename1编码 与 表名编码一致, 即可解决问题
------其他解决方案--------------------
void StudentDialog::on_pushButton_2_clicked()
{

    if(createConnection1())
    {
        QString tablename1;
        tablename1 = ui->lineEdit->text();
        qDebug() << tablename1;
        model1 = new QSqlTableModel(this);
        model1->setTable(tablename1);

        model1->setEditStrategy(QSqlTableModel::OnManualSubmit);
        model1->select(); //选取整个表的所有行
        // model->removeColumn(1); //不显示name属性列,如果这时添加记录,则该属性的值添加不上
        ui->tableView->setModel(model1);
        // ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);   //使其不可编辑
    }
}
附下代码,qDebug()显示的表明正常
------其他解决方案--------------------
现在数据库用的编码是utf8,怎么改tablename1的编码?

------其他解决方案--------------------
如果tablename1是通过窗体输入的,应该可以直接调用QString::toUtf8()
如果tablename1嵌在代码中,需要QTextCodec转换

反复试试吧
------其他解决方案--------------------
搁了它两天,今天试出来了,谢啦!!
------其他解决方案--------------------
求教:Qt 同一个tableview切换显示不同表内容该怎么实现?谢谢
------其他解决方案--------------------
引用:
搁了它两天,今天试出来了,谢啦!!
怎么解决的?
  相关解决方案