最近在学习QT,作为一个初学者,遇到了很多问题,下面分享下我在学习tableView过程中遇到的问题及解决方法。
//在tableView中显示数据库内容
QSqlDatabase db;
if(InitDatabase(db))
{
model=new QSqlTableModel(this,db);
ui->tableView->verticalHeader()->hide();
ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
model->setTable("数据表名");
model->select();
//model->removeColumn(0); //删除第一列
ui->tableView->setModel(model);
ui->tableView->setColumnWidth(1,330);
ui->tableView->setColumnWidth(2,330);
ui->tableView->setColumnWidth(3,360);
ui->tableView->show();
}
else
{
QMessageBox::warning(this,tr("warning"),QString("Exec Error!"));
}
//点击行显示在LineEdit控件中
void Register::on_tableView_clicked(const QModelIndex &index)
{
ui->lineEdit_1->setText(model->data(model->index(index.row(), 0)).toString());
ui->lineEdit_2->setText(model->data(model->index(index.row(), 1)).toString());
ui->lineEdit_3->setText(model->data(model->index(index.row(), 2)).toString());
ui->lineEdit_4->setText(model->data(model->index(index.row(), 3)).toString());
ui->lineEdit_5->setText(model->data(model->index(index.row(), 4)).toString());
}
//增加操作
void Register::on_pushButton_ADD_clicked()
{
QString A;
QString B;
QString C;
QString D;
QString E;
QSqlQuery query ;
query.prepare("插入语句");
A = ui->lineEdit_1->text();
B = ui->lineEdit_2->text();
C = ui->lineEdit_3->text();
D = ui->lineEdit_4->text();
E = ui->lineEdit_5->text();
query.addBindValue(A);
query.addBindValue(B);
query.addBindValue(C);
query.addBindValue(D);
query.addBindValue(E);
if(!query.exec())
{
qDebug()<<query.lastError();
}
else
{
qDebug()<<"inserted!";
model->select();
}
}