当前位置: 首页 > article >正文

【已解决】c++ qt选中该行为什么该列部分变色

笔者开启了QTableView中交替行改变颜色,发现笔者自定义绘制的水平滚动条,在选中后不发生颜色改变,这让笔者很疑惑。笔者查阅资料后发现,自定义绘制的控件,要自身设置颜色。当笔者解决了这个问题时,顺手就将这个问题的解决方案记录在此

问题来源

c++ qt中表格中含有自定义绘制部件,当表格该行选中时,自定义控件却未发生背景颜色改变。出现了问题

问题未解决前

在这里插入图片描述

问题解决后

在这里插入图片描述

问题解决方案

在paint绘制函数中,增加这段代码。

bool isSelected = option.state & QStyle::State_Selected;
		bool hasFocus = option.state & QStyle::State_HasFocus;
		if (isSelected || hasFocus) {
			painter->fillRect(option.rect, QColor(240, 240, 240)); // 选中或有焦点时的颜色
		}
		else {
			QColor backgroundColor;
			if (index.row() % 2 == 0) {
				backgroundColor = QColor(255, 255, 255); // 偶数行
			}
			else {
				backgroundColor = QColor(244, 246, 248); // 奇数行
			}
			painter->fillRect(option.rect, backgroundColor); // 未选中或没有焦点时的颜色
		}

主要含义是,判断有无焦点和有无选中,当获得焦点失去焦点或选中无选中都会改变颜色。


http://www.kler.cn/a/228056.html

相关文章:

  • 不背单词快捷键(不背单词键盘快捷键)
  • C++ 静态变量static的使用方法
  • C++并发编程指南02
  • Unity游戏(Assault空对地打击)开发(1) 创建项目和选择插件
  • 第十六届蓝桥杯大赛软件赛(编程类)知识点大纲
  • oracle比较一下统计信息差异吧
  • 51单片机实验课二
  • 商业智能(BI)数据分析、挖掘概念
  • python 爬虫安装http请求库
  • 修复wordpress安全漏洞
  • C语言如何控制输出最⼩宽度?
  • 【Python】【完整代码】解析Excel 文件中的内容并检查是否包含某字符串,并返回判断结果
  • 记录分享Spring Boot集成MQTT(配有简单实现示例)
  • Qt应用开发(安卓篇)——调用ioctl、socket等C函数
  • stable diffusion学习笔记——高清修复
  • vue3-setup语法糖 - 父子组件之间的传值
  • 《动手学深度学习(PyTorch版)》笔记7.1
  • yarn/npm certificate has expired
  • echarts绘制2D地图
  • 中国城乡建设统计年鉴,pdf、xls格式,时间覆盖2002-2022年
  • Dockerfile保留字
  • pgsql隐式联查的笛卡尔积和子查询性能
  • django微博热搜数据分析与可视化系统python毕业设计
  • 利用k8s Infra 容器,解决pod网络故障注入的问题
  • Python第十五章(文件)
  • spring boot打完jar包后使用命令行启动,提示.jar 中没有主清单属性