QTableView的表格项中加入图标的方法
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的表格项中加入图标的方法相关推荐
- qsql 关联_QTableView与QSqlTableModel显示mysql数据库中的数据,怎么在QTableView的项中添加chekbox按钮与上拉列表啊真心求指导...
QTableView与QSqlTableModel显示mysql数据库中的数据,如何在QTableView的项中添加chekbox按钮与下拉列表啊?真心求指导. 各位大侠好,利用QTableView与 ...
- Element ui Table表格匹配字典项中的数据
在工作中通常会遇到Table表格匹配字典项中的数据这里介绍几种方法大家仅供参考 <el-table:data="tableData"style="width: 10 ...
- Element 中的表格表头添加搜索图标和功能
Element 中的表格表头添加搜索图标和功能 主要实现 table的slot='header' headerData是表头的循环数组 tableData是表格内容的数组 <template s ...
- ssas表格模型 权限控制_Analysis Services(SSAS)表格模型中的时间智能
ssas表格模型 权限控制 In the analytical world, time is an important slicer. The ability to view data over ti ...
- flutter中使用图标(含自制图标库方案)
flutter中使用图标(含自定义图标图) 作者: jcLee95 邮箱 :291148484@163.com CSDN 主页:https://blog.csdn.net/qq_28550263?sp ...
- 如何在WordPress菜单中显示图标[WordPress插件]
该图标是任何类型设计的完美补充. 许多图标是公认的 . 在机场乘坐公共厕所标牌. 无需了解当地语言,如果您不熟悉当地语言,则可以从门前使用的图标立即掌握哪个厕所适合女士们使用,哪个厕所适合绅士们使用. ...
- 2021-IEEE论文-深度神经网络在文档图像表格识别中的应用现状及性能分析
2021年5月12日收到, 2021年6月4日接受, 出版日期2021年6月9日, 当前版本日期2021年6月24日. 原论文下载地址 摘要 - Abstract 表格识别的第一阶段是检测文档中的 ...
- 三篇论文,纵览深度学习在表格识别中的最新应用
本文从三篇表格识别领域的精选论文出发,深入分析了深度学习在表格识别任务中的应用. 表格识别是文档分析与识别领域的一个重要分支,其具体目标是从表格中获取和访问数据及其它有效信息.众所周知,本质上表格是信 ...
- android开机图片修改工具栏,如何以编程方式更改android工具栏中的图标...
执行此操作的正确方法是覆盖Activity中的onPrepareOptionsMenu方法. 假设您有一个应用程序,用户可以在其中"收藏"或"取消收藏"项目.首 ...
最新文章
- RHEL和Centos系统的区别?
- jquery 幻灯片图像切换效果
- Docker启动失败提示【exec user process caused: exec format error】
- Python程序中各函数间调用关系分析与可视化
- 2018-04-26java实习面试记录
- 一、基础篇--1.1Java基础-包装类的装箱和拆箱
- 把业务逻辑变成数据结构和SQL语句的例子。自然架构改成自然框架
- 嵌入式Linux内核,文件系统的制作
- 你以为我确定能解决难题?也是硬着头皮向前冲
- 汉字Unicode编码表
- appium工作原理
- Faster-RCNN理论
- canal deployer+canal adapter自动同步MySQL数据到ElasticSearch
- “大灯”到底指近光灯还是远光灯?
- 2020.10.27【GWAS】丨使用vcftools绘制pi(θπ) 选择消除分析图
- 亳州的来历(地名的由来)
- 使用python下载图片(新手代码)
- android怎么用命令安装软件,android使用adb命令安装软件
- 为什么“自学”总是那么难?
- STM32关于PVD低电压能检测的知识
热门文章
- oracle-不完全数据库恢复-被动恢复-RMAN-06025/ORA-01190
- SharpGL学习笔记(一) 平台构建与Opengl的hello World (转)
- C++ 实验3 类和对象
- 微信公众号开发 包括服务器配置、java web项目搭建、tomcat手动发布web项目、微信开发所需的url和token验证 2017.12.2...
- 多个 ng-app 中 Controllers Services 之间的通信
- container of()函数简介
- ReactiveSwift源码解析(三) Signal代码的基本实现
- 1.3—Spring基础配置—3.AOP
- 关于JDK中的集合总结(二)
- C# RangeHelper