該類為單張的數據庫表提供了一個可編輯的數據模型,它支持外鍵,除此之外和QSqlTableModel沒有什么不同
- model = new QSqlRelationalTableModel(this);
- model->setEditStrategy(QSqlTableModel::OnFieldChange);
- model->setTable("student");
- model->setRelation(2,QSqlRelation("course","id","name"));
- model->setHeaderData(0, Qt::Horizontal, QObject::tr("ID"));
- model->setHeaderData(1, Qt::Horizontal, QObject::tr("Name"));
- model->setHeaderData(2, Qt::Horizontal, QObject::tr("Course"));
- model->select();
- tableView->setModel(model);
如果我們希望用戶更改課程屬性時,只能在課程表中已有的課程中進行選擇,而不能隨意填寫課程,那么Qt中的QSqlRelationalDelegate委托類就能實現這個功能
- tableView->setItemDelegate(new QSqlRelationalDelegate(tableView));
posted on 2011-11-23 16:29
再生的雄鷹 閱讀(2405)
評論(0) 編輯 收藏 引用