一、創建顯現數據庫視圖
1、創建並打開數據庫 2、設置模型 QSqlTableModel *model = new QSqlTableModel(this); //模型自動關聯剛剛打開的數據庫 model->setTable("student");//關聯數據庫中的表student 3、把model放在view ui->tableView->setModel(model);//tableView是設計師中的QTableView model->select();//顯示model里的數據
二、細節
model->setHeaderData(0, Qt::Horizontal, "學號");//設置表頭 //設置model的編輯策略為手動提交修改 model->setEditStrategy(QSqlTableModel::OnManualSubmit); //設置view視圖上不允許修改數據 ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
三、添加刪除和保存
//添加 void Widget::on_buttonAdd_clicked() { //添加空記錄 QSqlRecord record = model->record(); //獲取空記錄 //獲取行號 int row = model->rowCount(); model->insertRecord(row, record); } //提交(即確定) void Widget::on_buttonSure_clicked() { model->submitAll(); //提交動作 } //撤銷 void Widget::on_buttonCancel_clicked() { model->revertAll(); //取消所用動作 model->submitAll(); //提交動作 } //刪除 void Widget::on_buttonDel_clicked() { //獲取選中的模型 QItemSelectionModel *sModel =ui->tableView->selectionModel(); //取出模型中的索引 QModelIndexList list = sModel->selectedRows(); //刪除所有選中的行 for(int i = 0; i < list.size(); i++) { model->removeRow( list.at(i).row() ); } } //查找 void Widget::on_buttonFind_clicked() { QString name = ui->lineEdit->text(); QString str = QString("name = '%1'").arg(name); model->setFilter(str); model->select(); }