标题:封装QTableView,支持冻结列,绘制表头,按钮,复选框,支持字体指定颜色设置等一系列骚操作!!!!
作者:1250479606
日期:2018-07-27 19:24
内容:
封装QTableView,支持以下操作
1、绘制复选框
2、绘制按钮,点击响应
3、支持字体指定颜色的设置
4、绘制表头,支持排序、全选等操作
5、支持冻结列,移动滚动条时固定显示前几列
封装这个QTableView类,花了很多心血和时间进行测试,调试,现在已经是成熟的产品了!!!!
程序EXE下载链接:https://download.csdn.net/download/u012765446/10575337
欢迎大家下载程序,进行指正(本人已经测了很多遍,已用于项目中)。。。。。。。
若对源码感兴趣,有偿提供,毕竟花了太多精力,源码不止有QTableView封装类,还有窗口,对话框,QPushButton等封装类。。。。。。。。
联系QQ:2587939109
#1 [shawking 07-28 12:32]
做到这一步,不容易
#2 [xdh873939316 07-31 19:00]
404
#3 [chl20002008 07-31 20:32]
404
#4 [1250479606 08-01 18:56]
之前上传的资源未审核,所以链接打不开,现在已经可以下载了
#5 [toby520 12-03 13:46]
划重点:
1. 实现固定列原理:
使用两个视图在同一个模型上,使用叠加技术,到达冻结某列的效果,
原理:两视图共享模型!
先把一个视图放到另外一个视图上面,只保留某一列显示,
其他列隐藏,并且使用stackUnder()把其放在最上面,然后第二个模型在他下面。
隐藏视图的竖直方向上的头部
说白了,就是一个view放到另外一个view的上面,上面的view不动,下面的view动,就可以实现这种效果!
2个tableview 共享一个model
2.Delegate实现各种cell的样式和交互:
1.使用QItemDelegate的paint函数
2.若是想显示一个自定义Widget 可实现:
QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const;
void setEditorData(QWidget *editor, const QModelIndex &index) const;
void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const;
void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &) const;
QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const;