QT筆記:數據庫總結(四)之SQL模型類-QSqlRelationalTableModel模型

該類爲單張的數據庫表提供了一個可編輯的數據模型,它支持外鍵,除此之外和QSqlTableModel沒有什麼不同
  1. model = new QSqlRelationalTableModel(this);  
  2. model->setEditStrategy(QSqlTableModel::OnFieldChange); //屬性變化時寫入數據庫  
  3. model->setTable("student");  
  4. model->setRelation(2,QSqlRelation("course","id","name"));//將student表的第三個屬性設爲course表的id屬性的外鍵,並將其顯示爲course表的name屬性的值  
  5. model->setHeaderData(0, Qt::Horizontal, QObject::tr("ID"));  
  6. model->setHeaderData(1, Qt::Horizontal, QObject::tr("Name"));  
  7. model->setHeaderData(2, Qt::Horizontal, QObject::tr("Course"));  
  8. model->select();  
  9. tableView->setModel(model);  

 

如果我們希望用戶更改課程屬性時,只能在課程表中已有的課程中進行選擇,而不能隨意填寫課程,那麼Qt中的QSqlRelationalDelegate委託類就能實現這個功能

  1. tableView->setItemDelegate(new QSqlRelationalDelegate(tableView));  


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章