【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视图中的文字实现彩虹渐变效果
上一篇: poi合并单元格的处理
下一篇: 通过点击事件来更改图片的src路径