1、先说一下QSqlQueryModel 和 QSqlTableModel的区别:QSqlQueryModel模型是只读的,我们利用这个模型显示到TableView上面的数据是不可以编辑的,比如:双击视图是没有反应的。QSqlTableModel是可读可写的,我们利用这个模型显示到TableView上面的数据是可以编辑的,在不子类化的情况下,我们就可以双击对数据进行编辑更改操作。当然我们如果想让QSqlQueryModel模型可以编辑的话,就必须对其子类化,重新实现一些函数,比如:flags/setdata,data......等等。
2、子类化QSqlTableModel模型,为TableView添加复选框:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23#ifndef ZZCTABLEVIEWMODEL_H #define ZZCTABLEVIEWMODEL_H #include <QObject> #include <QSqlTableModel> class zzcTableViewModel : public QSqlTableModel { Q_OBJECT public: explicit zzcTableViewModel(QObject *parent = nullptr, QSqlDatabase db = QSqlDatabase()); protected: QVariant data(const QModelIndex &index, int role) const; bool setData(const QModelIndex &, const QVariant &, int); Qt::ItemFlags flags(const QModelIndex &) const; public: QMap<int, Qt::CheckState> check_state_map; signals: void
最后
以上就是拉长春天最近收集整理的关于使用QSqlTableModel为TableView增加复选框及增、删、查操作的全部内容,更多相关使用QSqlTableModel为TableView增加复选框及增、删、查操作内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复