QTableView的表格项中加入图标的方法

当使用QTableView视图的时候,需要在QTableView每一行前面加入图标,应该怎么做呢?Qt中通过使用MVC的处理方式很容易做到这一点,具体实现如下:

下面就介绍一下,上图的灯泡是怎么实现的,通过重载QAbstractTableModel中的data方法,如下:(CTblModel 派生自QAbstractTableModel)

QVariant CTblModel::data(const QModelIndex &index, int role) const

{

if (!index.isValid())

return QVariant();

int col = index.column();

if (col == ledColIndex && role == Qt::DecorationRole)

{

return QIcon(":/images/light.png");

}

else

{

...

}

return QVariant();

}

对于mvc的使用方法,请参考http://blog.csdn.net/rabinsong/article/details/8452946

让图片动起来,能够响应用户事件,当用户单击灯泡时,灯泡会点亮,这个怎么实现呢?

要实现这个功能,首先要能接受到鼠标事件,其次,要知道鼠标点击了灯泡部分,不能鼠标不在灯泡上点击,灯泡也亮。有了这两点,下面来看看实现:

可以通过重载QTableView的 mousePressEvent(),从而获得对鼠标单击的控制权,通过indexAt方找到当前单击的index,再根据索引找到灯泡所在的列,具体实现如下:

void CTblView::mouseMoveEvent(QMouseEvent *event)

{

const QPoint &p = event->pos();

QModelIndex modelIndex = indexAt(p);

if (modelIndex.isValid())

{

int col = modelIndex.column();

int row = modelIndex.row();

if (col == ledColIndex)

{

pTblModel->setLight(row);

}

}

}

pTblModel就是上面定义的CTblModel,到了这里大家应该知道了基本实现思路了吧。

让图标变大一些,按照上面的做法,灯泡图标的大小很小,不管你的light.png图片多大,在表格中显示时的图标大小默认都很小,那么怎么改变图标的大小呢?方法也很简单,就是在CTblView构造函数中加入setIconSize(QSize(25,25));我设置的是25*25大小,显示效果如上图的灯泡效果,大家可以根据自己的应用,调整其大小。

QTableView的表格项中加入图标的方法相关推荐

  1. qsql 关联_QTableView与QSqlTableModel显示mysql数据库中的数据,怎么在QTableView的项中添加chekbox按钮与上拉列表啊真心求指导...

    QTableView与QSqlTableModel显示mysql数据库中的数据,如何在QTableView的项中添加chekbox按钮与下拉列表啊?真心求指导. 各位大侠好,利用QTableView与 ...

  2. Element ui Table表格匹配字典项中的数据

    在工作中通常会遇到Table表格匹配字典项中的数据这里介绍几种方法大家仅供参考 <el-table:data="tableData"style="width: 10 ...

  3. Element 中的表格表头添加搜索图标和功能

    Element 中的表格表头添加搜索图标和功能 主要实现 table的slot='header' headerData是表头的循环数组 tableData是表格内容的数组 <template s ...

  4. ssas表格模型 权限控制_Analysis Services(SSAS)表格模型中的时间智能

    ssas表格模型 权限控制 In the analytical world, time is an important slicer. The ability to view data over ti ...

  5. flutter中使用图标(含自制图标库方案)

    flutter中使用图标(含自定义图标图) 作者: jcLee95 邮箱 :291148484@163.com CSDN 主页:https://blog.csdn.net/qq_28550263?sp ...

  6. 如何在WordPress菜单中显示图标[WordPress插件]

    该图标是任何类型设计的完美补充. 许多图标是公认的 . 在机场乘坐公共厕所标牌. 无需了解当地语言,如果您不熟悉当地语言,则可以从门前使用的图标立即掌握哪个厕所适合女士们使用,哪个厕所适合绅士们使用. ...

  7. 2021-IEEE论文-深度神经网络在文档图像表格识别中的应用现状及性能分析

    2021年5月12日收到, 2021年6月4日接受, 出版日期2021年6月9日, 当前版本日期2021年6月24日. 原论文下载地址 摘要 - Abstract   表格识别的第一阶段是检测文档中的 ...

  8. 三篇论文,纵览深度学习在表格识别中的最新应用

    本文从三篇表格识别领域的精选论文出发,深入分析了深度学习在表格识别任务中的应用. 表格识别是文档分析与识别领域的一个重要分支,其具体目标是从表格中获取和访问数据及其它有效信息.众所周知,本质上表格是信 ...

  9. android开机图片修改工具栏,如何以编程方式更改android工具栏中的图标...

    执行此操作的正确方法是覆盖Activity中的onPrepareOptionsMenu方法. 假设您有一个应用程序,用户可以在其中"收藏"或"取消收藏"项目.首 ...

最新文章

  1. RHEL和Centos系统的区别?
  2. jquery 幻灯片图像切换效果
  3. Docker启动失败提示【exec user process caused: exec format error】
  4. Python程序中各函数间调用关系分析与可视化
  5. 2018-04-26java实习面试记录
  6. 一、基础篇--1.1Java基础-包装类的装箱和拆箱
  7. 把业务逻辑变成数据结构和SQL语句的例子。自然架构改成自然框架
  8. 嵌入式Linux内核,文件系统的制作
  9. 你以为我确定能解决难题?也是硬着头皮向前冲
  10. 汉字Unicode编码表
  11. appium工作原理
  12. Faster-RCNN理论
  13. canal deployer+canal adapter自动同步MySQL数据到ElasticSearch
  14. “大灯”到底指近光灯还是远光灯?
  15. 2020.10.27【GWAS】丨使用vcftools绘制pi(θπ) 选择消除分析图
  16. 亳州的来历(地名的由来)
  17. 使用python下载图片(新手代码)
  18. android怎么用命令安装软件,android使用adb命令安装软件
  19. 为什么“自学”总是那么难?
  20. STM32关于PVD低电压能检测的知识

热门文章

  1. oracle-不完全数据库恢复-被动恢复-RMAN-06025/ORA-01190
  2. SharpGL学习笔记(一) 平台构建与Opengl的hello World (转)
  3. C++ 实验3 类和对象
  4. 微信公众号开发 包括服务器配置、java web项目搭建、tomcat手动发布web项目、微信开发所需的url和token验证 2017.12.2...
  5. 多个 ng-app 中 Controllers Services 之间的通信
  6. container of()函数简介
  7. ReactiveSwift源码解析(三) Signal代码的基本实现
  8. 1.3—Spring基础配置—3.AOP
  9. 关于JDK中的集合总结(二)
  10. C# RangeHelper