二十六、Qt数据库(六)QSqlTableModel.PDFVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
二十六、Qt数据库(六)QSqlTableModel 本文章原创于 转载请注明出处。 在上一篇我们讲到只读的QSqlQueryModel也可以使其可编辑,但是很麻烦。Qt 提供了操作单表的QSqlTableModel,如果我们需要对表的内容进行修改,那么 我们就可以直接使用这个类。 QSqlTableModel,该类提供了一个可读写单张SQL表的可编辑数据模型。我们 下面就对其的几个常用功能进行介绍,分别是修改,插入,删除,查询,和排 序。 在开始讲之前,我们还是新建Qt4 Gui Application工程,我这里工程名为 tableModel ,然后选中QtSql模块,Base class选QWidget。工程建好后,添 加C++ Header File ,命名为database.h,更改其内容如下: #ifndef DATABASE_H #define DATABASE_H #include QSqlDatabase #include QSqlQuery #include QObject static bool createConnection() { QSqlDatabase db = QSqlDatabase::addDatabase(“QSQLITE”); db.setDatabaseName(“database.db”); if(!db.open()) return false; QSqlQuery query; query.exec(QObject::tr(“create table student (id int primary key, name vchar)”)); query.exec(QObject::tr(“insert into student values (0,’刘 明’)”)); query.exec(QObject::tr(“insert into student values (1,’陈 刚’)”)); query.exec(QObject::tr(“insert into student values (2,’王 红’)”)); return true; } #endif // DATABASE_H 为了在数据库中能使用中文,我们使用了QObject类的tr()函数。而在下面的 main()函数中我们也需要添加相应的代码来支持中文。 然后将main.cpp的文件更改如下: #include QtGui/QApplication #include “widget.h” #include “database.h” #include QTextCodec int main(int argc, char *argv[]) { QApplication a(argc, argv); QTextCodec::setCodecForTr(QTextCodec::codecForLocale()); if(!createConnection()) return 1; Widget w; w.show(); return a.exec(); } 下面我们打开widget.ui,设计界面如下: 其中的部件有Table View 和 Line Edit,其余是几个按钮部件。 然后在widget.h中加入头文件: #include QSqlTableModel 在private中声明对象:QSqlTableModel *model; 因为我们要在不同的函数中使用model对象,所以我们在这里声明它。 我们到widget.cpp文件中的构造函数里添加如下代码: model = new QSqlTableModel(this); model-setTable(“student”); model-setEditStrategy(QSqlTableModel::OnManualSubmit); model-select(); //选取整个表的所有行 // model-removeColumn(1); //不显示name属性列,如果这时添加记录,则该 属性的值添加不上 ui-tableView-setModel(model); // ui-tableView-setEditTriggers(QAbstractItemView::NoEditTriggers); //使其不可编辑 此时运行程序,效果如下: 可以看到,这个模

文档评论(0)

153****8686 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档