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切换显示不同表内容该怎么实现?谢谢
[其他解释]