我在使用QStyledItemDelegate
覆盖QTreeView
中显示的文本时遇到了问题。 当满足某些条件时,将执行以下代码:
void MyDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
.
.
QStyleOptionViewItemV4 opt = option;
initStyleOption(&opt, index);
QString text = opt.text;
text = text + QString("TEST");
opt.text = text;
QStyledItemDelegate::paint(painter, opt, index);
}
在调试器中我确认TEST被添加到opt.text
中。
然而,当我运行程序并查看TreeVuew
时,它仍然显示原始文本,没有追加TESTstring
。
看起来当我调用QStyledItemDelegate::paint(painter, opt, index)
时,它忽略了我对opt
参数所做的更改。