1.重写ItemDelegate的Item方法

这里我使用的QListView来显示Log日志,将写好的代理在初始化中就可以直接赋值上。

m_LogModel = new QStandardItemModel();
this->textEditLog->setEditTriggers(QAbstractItemView::NoEditTriggers);
this->textEditLog->setModel(m_LogModel);
PItemDelegateEx *delegateEx = new PItemDelegateEx;
this->textEditLog->setItemDelegate(delegateEx);

后面在收到Log的时候,直接添加上去即可,这里我想传一个标记字段,苦苦没找到方法,后来查看API手册,看到setData方法,

尝试了一下,成功解决了!

QStandardItem *item = new QStandardItem(str);
item->setSizeHint(QSize(25,25));
QVariant typeVal(type);
item->setData(typeVal,Qt::DecorationPropertyRole);
m_LogModel->appendRow(item);

在Opaint中去解析,绘图即可:

Q_ASSERT(index.isValid());

QString text = index.data(Qt::DisplayRole).toString();
if(!text.isEmpty())
{
painter->save();
QRect cellRect = option.rect;
QBrush brush;

int m_nMsgType = index.data(Qt::DecorationPropertyRole).toInt();
qDebug() << "DelegateItem Type : " << m_nMsgType;
if(m_nMsgType == LOGTYPE_NORMAL){
painter->setPen(QColor(0,255,0));
}
else{
painter->setPen(QColor(255,0,0));
}

painter->drawText(cellRect, Qt::AlignLeft, text);
painter->restore();
}

最后就可以实现,传不同的type值进来即可显示不同的颜色!从而标记不同的log类型

[Qt]用QItemDelegate的来修改QStandardItem字体颜色的更多相关文章

  1. 修改tabbar 字体颜色

    NSDictionary *seletedTextAttrs = @{NSForegroundColorAttributeName:[UIColor orangeColor]}; 修改tabbar 字 ...

  2. 如何修改CAD字体颜色?试试这种方法

    CAD中编辑图纸的时候,使用的CAD制图软件来进行绘制,图纸中的CAD字体颜色都是默认的颜色,这样不方便进行查看.这个时候就需要修改CAD字体颜色了,那么如何修改CAD字体颜色呢?具体要怎么来进行操作 ...

  3. Android 修改Menu字体颜色和背景

    我们知道,在Android中修改TextView的字体颜色,一般是通过setTextColor()方法.虽说Android的Menu菜单项的每一项都是由TextView组成,但是Android的sdk ...

  4. css 修改placeholder字体颜色字体大小 修改input记住账号密码后的默认背景色

     壹 ❀ 引 本来这个阶段的项目页面都是给实习生妹子做的,我只用写写功能接接数据,但这两天妹子要忙翻译,这个工作阶段也快结束了导致有点慌,只能自己把剩余的几个小页面给写了. 那么做页面的过程中,UI也 ...

  5. sublime修改代码字体颜色

    1.首先知道你采用的是什么颜色主题在Preferences => color scheme查看,假设是Monokai2.查找该主题的脚本文件Preferences => Browse Pa ...

  6. Eclipse与MyEclipse修改注释字体颜色

    修改配置路劲 Window--->Preferences--->Java--->Editor--->Syntax Coloring--->Element--->Co ...

  7. Android之修改部分字体颜色

    #01# 方法一: TextView textView = (TextView) view.findViewById(R.id.text); SpannableString ss = new Span ...

  8. select设置disable后ie修改默认字体颜色暂时解决

    找了很多资料,终于在科学上网后找到了一个方法,虽然暂时不知道原理,但是已经实现了功能就是好的 select[disabled='disabled']::-ms-value { color: #000; ...

  9. Android 修改 Menu字体颜色

    转载:http://blog.csdn.net/jayyuz/article/details/55260996 @Override public boolean onCreateOptionsMenu ...

随机推荐

  1. 关于mysql数据库插入数据,不能插入中文和出现中文乱码问题

    首先,推荐一篇博客:http://www.cnblogs.com/sunzn/archive/2013/03/14/2960248.html 当时,我安装完mysql数据库后,新建一个数据库后插入数据 ...

  2. postman使用之一:安装启动篇

    官网介绍:http://www.getpostman.com/docs/ postman是干什么的就不介绍了,本文从postman的安装开始介绍,后续会有其它使用的介绍. 安装: 1.mac app安 ...

  3. 在线倍增法求LCA专题

    1.cojs 186. [USACO Oct08] 牧场旅行 ★★   输入文件:pwalk.in   输出文件:pwalk.out   简单对比时间限制:1 s   内存限制:128 MB n个被自 ...

  4. 你不知道的Javascript(上卷)读书笔记之二 ---- 词法作用域

    在前一篇文章中,我们把作用域定义为"管理.维护变量的一套规则",接下来是时候来深入讨论一下Js的作用域问题了,首先我们要知道作用域一般有两种主要的工作类型,一种是词法作用域,一种是 ...

  5. oracle连接方式、创建数据库用户、忘记数据库密码、用户锁定

    一.oracle六种连接方式 ①myEclipse中 打开myEclipse,window----show view----Other---输入DB点击DB browser 选中右键New.出现如下页 ...

  6. 错题分析--ASP.NET

    解析:支架模板支持的类型包括Empty.Create.Delete.Details.Edit.List 解析:Spring支持4种依赖检查:默认的是none.因此说法不正确的结果是D 解析:各层之间不 ...

  7. [No000070]Flash与C#通信

    注册控件 首先要插入Flash就必须使用Flash控件,在工具栏右键选择"选择项…",然后在"COM组件"面板下点击"浏览"按钮,在本机电脑 ...

  8. IIS HTTP 错误 404.17 - Not Found HTTP 错误 404.2 解决方法

    出现这种情况的原因通常是因为先安装了Framework,后安装的IIS: 解决方法 运行cmd,输入: C:\Windows\Microsoft.NET\Framework\V4.0.30319\as ...

  9. Uninstall from GAC In C# code

    How do I uninstall the GAC from my C# application. I am not able to uninstall, the particular exe an ...

  10. 如何实时查看linux下的日志

    Linux日志文件在/var/log目录下,可以通过命令查看日志文件. 1,cat messages可以查看某个日志文件. 2,要达到实时更新,可以通过tail命令查看更新的数据,例如tail -f ...