该类为单张的数据库表提供了一个可编辑的数据模型,它支持外键,除此之外和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
再生的雄鹰 阅读(2387)
评论(0) 编辑 收藏 引用