【发布时间】:2019-03-08 16:23:26
【问题描述】:
我扩展了qstyleditemview 类。当我处于qtreeview 项目的编辑模式时,paint 方法似乎没有正确执行。当我将状态更改为QStyle::State_Selected 时,它会起作用 - 它会在qtreeview 中绘制选定的行(文本)。
知道为什么它不能在编辑模式下工作吗?
void myQItemDelegate::paint(QPainter *painter,const QStyleOptionViewItem &option,const QModelIndex &index) const
{
QStyleOptionViewItem s = *qstyleoption_cast<const QStyleOptionViewItem*>(&option);
if(s.state & QStyle::State_Editing)
{
painter->fillRect(s.rect, s.palette.highlight());
s.palette.setColor(QPalette::HighlightedText, QColor(Qt::blue));
}
QStyledItemDelegate::paint(painter, s, index);
}
【问题讨论】:
标签: qt paint editing qitemdelegate qstyleditemdelegate