欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【QT5】使用QStyledItemDelegate条件设置单元格文本颜色

程序员文章站 2022-07-13 15:20:34
...

有很多表格项需要根据不同的数据显示不同的文本颜色,翻遍某度终于实现了这个小功能,但还需完善。

#include"myDelegate.h"
#include <QtWidgets/QApplication>
void myDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option,
 const QModelIndex &index) const {
 
 if (index.column() == 2) {
 // 获取数据
  int ageId = index.model()->data(index, Qt::DisplayRole).toInt();
  // 如果小于19就标红
  if (ageId < 19) {
   QStyleOptionViewItem myOption = option;
   // 居中
   myOption.displayAlignment = Qt::AlignRight| Qt::AlignVCenter;
   myOption.palette.setColor(QPalette::Text, QColor(Qt::red));
   QApplication::style()->drawItemText(painter, myOption.rect, myOption.displayAlignment, myOption.palette, true, QString::number(ageId), QPalette::Text);
  }
  else {
   QStyledItemDelegate::paint(painter, option, index);
  }
 }
 else {
  QStyledItemDelegate::paint(painter, option, index);
 }
}

感谢互联网、感谢世界,Qt太难了
参考链接:
Qt自定义委托在QTableView中绘制控件、图片、文字

如何为Qt视图中的文字实现彩虹渐变效果

相关标签: 【Qt】 qt5