《自定义QTreeView表项颜色、字体、背景色、对齐方式》:系列教程之六

本文主要是介绍《自定义QTreeView表项颜色、字体、背景色、对齐方式》:系列教程之六,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文属于《QTreeView使用系列教程》之一,欢迎查看其它文章。

在自定义model中修改表项item的文本颜色、字体、背景色以及对齐方式。

1、TreeModel中data函数修改

首先在自定义model类TreeModel中,data()中添加处理font、color、Background、TextAlignment4个role处理逻辑。

QVariant TreeModel::data(const QModelIndex &index, int role) const
{if (!index.isValid())return QVariant();TreeItem *item = itemFromIndex(index);if (role == Qt::DisplayRole){return item->data(index.column());}else if (role == Qt::FontRole){return item->getFont(index.column());}else if (role == Qt::TextColorRole) {return item->getColor(index.column());}else if (role == Qt::BackgroundRole) {return item->getBackground(index.column());}else if (role == Qt::TextAlignmentRole) {return item->getTextAlign(index.column());}return QVariant();
}

2、TreeItem中添加4个获取函数

QVariant TreeItem::getFont(int column)
{if (column == COLUMN_NAME){QFont f;f.setBold(true);return f;}return QVariant();
}QVariant TreeItem::getColor(int column)
{if (column == COLUMN_PHONE){return QColor(Qt::red);}return QVariant();
}QVariant TreeItem::getBackground(int column)
{if (row() % 2 == 0) // 偶数行{return QColor(Qt::lightGray);}return QVariant();
}QVariant TreeItem::getTextAlign(int column)
{if (column == COLUMN_SEX){return QVariant(Qt::AlignCenter);}else if (column == COLUMN_AGE) {return QVariant(Qt::AlignVCenter | Qt::AlignRight);}return QVariant();
}

getFont():仅"名称"列文本字体为粗体,其余列默认;

getColor():仅"电话"列文字颜色为红色,其余列默认;

getBackground():偶数行背景色为"lightGray",奇数行默认;

getTextAlign():"性别"列文本居中,"年龄"列文本居右,其余列默认。

效果:
在这里插入图片描述



若对你有帮助,欢迎点赞、收藏、评论,你的支持就是我的最大动力!!!

同时,阿超为大家准备了丰富的学习资料,欢迎关注公众号“超哥学编程”,即可领取。

本文涉及工程代码,公众号回复:34ItemFontColor,即可下载。

在这里插入图片描述

这篇关于《自定义QTreeView表项颜色、字体、背景色、对齐方式》:系列教程之六的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1071464

相关文章

Java对象转换的实现方式汇总

《Java对象转换的实现方式汇总》:本文主要介绍Java对象转换的多种实现方式,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java对象转换的多种实现方式1. 手动映射(Manual Mapping)2. Builder模式3. 工具类辅助映

Spring Boot读取配置文件的五种方式小结

《SpringBoot读取配置文件的五种方式小结》SpringBoot提供了灵活多样的方式来读取配置文件,这篇文章为大家介绍了5种常见的读取方式,文中的示例代码简洁易懂,大家可以根据自己的需要进... 目录1. 配置文件位置与加载顺序2. 读取配置文件的方式汇总方式一:使用 @Value 注解读取配置方式二

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

JAVA保证HashMap线程安全的几种方式

《JAVA保证HashMap线程安全的几种方式》HashMap是线程不安全的,这意味着如果多个线程并发地访问和修改同一个HashMap实例,可能会导致数据不一致和其他线程安全问题,本文主要介绍了JAV... 目录1. 使用 Collections.synchronizedMap2. 使用 Concurren

C# foreach 循环中获取索引的实现方式

《C#foreach循环中获取索引的实现方式》:本文主要介绍C#foreach循环中获取索引的实现方式,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、手动维护索引变量二、LINQ Select + 元组解构三、扩展方法封装索引四、使用 for 循环替代

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

将Java程序打包成EXE文件的实现方式

《将Java程序打包成EXE文件的实现方式》:本文主要介绍将Java程序打包成EXE文件的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录如何将Java程序编程打包成EXE文件1.准备Java程序2.生成JAR包3.选择并安装打包工具4.配置Launch4

springboot上传zip包并解压至服务器nginx目录方式

《springboot上传zip包并解压至服务器nginx目录方式》:本文主要介绍springboot上传zip包并解压至服务器nginx目录方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录springboot上传zip包并解压至服务器nginx目录1.首先需要引入zip相关jar包2.然

Java数组初始化的五种方式

《Java数组初始化的五种方式》数组是Java中最基础且常用的数据结构之一,其初始化方式多样且各具特点,本文详细讲解Java数组初始化的五种方式,分析其适用场景、优劣势对比及注意事项,帮助避免常见陷阱... 目录1. 静态初始化:简洁但固定代码示例核心特点适用场景注意事项2. 动态初始化:灵活但需手动管理代

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注