• 1513阅读
  • 8回复

封装QTableView,支持冻结列,绘制表头,按钮,复选框,支持字体指定颜色设置等一系列骚操作!!!! [复制链接]

上一主题 下一主题
离线1250479606
 

封装QTableView,支持以下操作
1、绘制复选框
2、绘制按钮,点击响应
3、支持字体指定颜色的设置
4、绘制表头,支持排序、全选等操作
5、支持冻结列,移动滚动条时固定显示前几列
封装这个QTableView类,花了很多心血和时间进行测试,调试,现在已经是成熟的产品了!!!!
程序EXE下载链接:https://download.csdn.net/download/u012765446/10575337
欢迎大家下载程序,进行指正(本人已经测了很多遍,已用于项目中)。。。。。。。
若对源码感兴趣,有偿提供,毕竟花了太多精力,源码不止有QTableView封装类,还有窗口对话框,QPushButton等封装类。。。。。。。。
联系QQ:2587939109







离线shawking

只看该作者 1楼 发表于: 07-28
做到这一步,不容易
离线xdh873939316

只看该作者 2楼 发表于: 07-31
404
离线chl20002008

只看该作者 3楼 发表于: 07-31
404
离线1250479606

只看该作者 4楼 发表于: 08-01
之前上传的资源未审核,所以链接打不开,现在已经可以下载了
离线toby520

只看该作者 5楼 发表于: 12-03
划重点:
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;
QtQML多多指教开发社区 http://www.heilqt.com
将QtCoding进行到底,做Qt的宠儿
关注移动互联网,关注金融
开发PC客户端,服务于金融行业
群号:312125701   37091473(付费咨询)
离线john_duan

只看该作者 6楼 发表于: 12-03
回 toby520 的帖子
toby520:划重点:
1. 实现固定列原理:
使用两个视图在同一个模型上,使用叠加技术,到达冻结某列的效果,
原理:两视图共享模型!
先把一个视图放到另外一个视图上面,只保留某一列显示,
....... (2018-12-03 13:46) 

离线futureq

只看该作者 7楼 发表于: 前天 07:42
可以,qt中好像有个例子,西门子系统里刀具界面好像也有固定列
在线donglaile

只看该作者 8楼 发表于: 前天 22:49
回 toby520 的帖子
toby520:划重点:
1. 实现固定列原理:
使用两个视图在同一个模型上,使用叠加技术,到达冻结某列的效果,
原理:两视图共享模型!
先把一个视图放到另外一个视图上面,只保留某一列显示,
....... (2018-12-03 13:46) 

之前也做了一个冻结表格,就是这个思路,赞一下
快速回复
限100 字节
 
上一个 下一个