• 2440阅读
  • 1回复

关于自定义委托里drawDisplay()函数的问题 [复制链接]

上一主题 下一主题
离线qazaq408
 

只看楼主 倒序阅读 楼主  发表于: 2015-02-28
首先我自定义了一个模型(一个表格),然后用QTableView来看这个模型,同时在view里设置了自定义委托

然后我希望这个委托在表格里输入的时候,如果输入了非数字的时候,将字体显示为红色,提醒用户输入可能有误
class myDetegate:public QItemDelegate

然后我重写了 paint函数
  1. void myDetegate::paint(QPainter* paint er, const QStyleOptionItemView& option , const QModelIndex& index)const
  2. {
  3.    ....
  4.    ...
  5.   painter->setPen(QPen(Qt::red));
  6.    drawDisplay(painter,option,option.rect, texts);  //用这个函数字体颜色没有任何变化
  7.     painter->drawText(option.rect,texts);    //用这个函数字体会变成红色
  8. ....
  9. }
这是神马情况?
离线roywillow

只看该作者 1楼 发表于: 2015-02-28
因为你是用的style的默认效果绘制的啊,而style默认的option里应该就是用的黑色作为字体的颜色
你可以自己修改一下option里的palette再绘制
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
快速回复
限100 字节
 
上一个 下一个