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

Qt之自定义QStringListModel设置背景色和前景色

一.效果


二.实现

QStringListModel里只实现了Qt::EditRole和Qt::DisplayRole,不能直接设置背景色和前景色,所以我们要继承QStringListModel,重写其中的data和setData方法,使其支持Qt::ForegroundRole和Qt::BackgroundRole。

QHStringListModel.h

#ifndef QHSTRINGLISTMODEL_H
#define QHSTRINGLISTMODEL_H

#include <QStringListModel>
#include <QColor>

class QHStringListModel : public QStringListModel
{
public:
    explicit QHStringListModel(QObject *parent = nullptr);

    QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
    bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override;

    void clear();

private:
    QMap<int, QColor> m_foregroundColorMap;
    QMap<int, QColor> m_backgroundColorMap;
};

#endif 

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

相关文章:

  • 1.2、Python基础-函数
  • Java设计模式大揭秘,细致剖析5种经典模式
  • 你真的了解CPU和GPU?
  • 低概率Bug,研发敷衍说复现不到
  • 【Java 进阶篇】Java HTTP 概述
  • 使用AOP切面实现日志记录功能
  • Codeforces Round 904 (Div. 2) C
  • Pytorch指定数据加载器使用子进程
  • 09. 主频和时钟配置
  • 本地存储 sessionStoragelocalStorage
  • Linux本地RStudio工具安装指南及远程访问配置安装RStudio Server
  • V3s 屏幕LCD驱动总结
  • Java基础-字符串
  • 使用字节流读取文件中的数据的几种方式
  • c#调用webservice 示例
  • 经典卷积神经网络 - LeNet
  • 将rul中所有的特殊符号进行转换的方法
  • 常用linux命令 linux_cmd_sheet
  • EPPlus库的安装和使用 C# 中 Excel的导入和导出
  • kubeadm初始化的k8s集群证书续期—— 筑梦之路