QT笔记:数据库总结(四)之SQL模型类-QSqlRelationalTableModel模型

发表于:2013-7-09 10:00

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:vloong    来源:51Testing软件测试网采编

  该类为单张的数据库表提供了一个可编辑的数据模型,它支持外键,除此之外和QSqlTableModel没有什么不同

model = new QSqlRelationalTableModel(this); 
model->setEditStrategy(QSqlTableModel::OnFieldChange); //属性变化时写入数据库 
model->setTable("student"); 
model->setRelation(2,QSqlRelation("course","id","name"));//将student表的第三个属性设为course表的id属性的外键,并将其显示为course表的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));

相关文章

QT笔记:数据库总结(一)

QT笔记:数据库总结(二)之SQL模型类-QSqlQueryModel模型

QT笔记:数据库总结(三)之SQL模型类-QSqlTableModel模型

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号