• 5941阅读
  • 4回复

表格中怎样保持选中的item文字颜色不改变 [复制链接]

上一主题 下一主题
离线wxyao
 

只看楼主 倒序阅读 楼主  发表于: 2010-06-06
— 本帖被 XChinux 执行加亮操作(2010-09-05) —
默认情况下选中之后selection-color就变成白色了,背景色变成蓝色了。

正常情况下我背景色是白色的,一行item中文字有红色的、绿色的等。

我希望选中一行后,只是自己改变背景色,而不改变文字颜色。

请教怎么比较合理的做的到呢?

[ 此帖被wxyao在2010-06-07 12:13重新编辑 ]
离线wxyao

只看该作者 1楼 发表于: 2010-06-07
Thanks for your attention :-)
离线xtfllbl

只看该作者 2楼 发表于: 2010-06-07
看一看调色盘,其实最简单的做法就是单击之后触发事件,把这列的那个Item设置为字体红色就是了。
上海欢迎您
离线wxyao

只看该作者 3楼 发表于: 2010-06-10
回 2楼(xtfllbl) 的帖子
我主要想能够修改选中后的Item的文字颜色。
那个属性就是HigtlightText,可问题是QStandardItem 和 QTableWidgetItem都没有setPalette,也没有setStyleSheet。

我希望能够指定单个Item进行修改,整体修改很简单的:
    setStyleSheet("selection-color: rgb(255, 0, 0)");


另外使用setTextColor,setForeground没用的,这两个都只能修改未选中状态下的颜色噢。

离线wxyao

只看该作者 4楼 发表于: 2010-09-05
解决了,谢谢大家的的关注,考虑到解决了给出大家方法的是一种美德,就把方法贴一下啦

使用代理,这是我程序中使用的一段代码

  1. //委托(代理),参考QT的MVC相关知识
  2. class ItemDelegate : public QItemDelegate
  3. {
  4.     Q_OBJECT
  5. public:
  6.     ItemDelegate()
  7.     {
  8.     }
  9.     void paint(QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index) const  
  10.     {
  11.         QStyleOptionViewItem  viewOption(option);
  12.         //涨跌的那列
  13.         if (index.column() == 2)    
  14.         {
  15.             if (index.data().toDouble() >= 0)
  16.                 viewOption.palette.setColor(QPalette::HighlightedText,QColor(255, 63, 63));
  17.             else
  18.                 viewOption.palette.setColor(QPalette::HighlightedText,QColor(0, 170, 0));
  19.         }
  20.         //显示更新时间的那列
  21.         else if (index.column() == 16)    
  22.         {
  23.             viewOption.palette.setColor(QPalette::HighlightedText,Qt::blue);
  24.         }
  25.         //其他列
  26.         else
  27.         {
  28.             viewOption.palette.setColor(QPalette::HighlightedText, Qt::black);
  29.         }
  30.         QItemDelegate::paint(painter, viewOption, index);
  31.     }
  32. };


  1. view->setItemDelegate(new ItemDelegate());

[ 此帖被wxyao在2010-09-05 20:16重新编辑 ]
快速回复
限100 字节
 
上一个 下一个