Добрый день.
Нужен делегат, который может отображать в ячейке текст с разными стилями, цветами подстрок и т.д. (как в excel). Делаю через наследование QStyledItemDelegate, но как теперь разукрасить текст - вернее подстроки в тексте. Попробовал делать через QTextDocument используя html-разметку, но теперь не работает перенос слов и лепит в одну. У QTextDocument есть QTextOptions, но так и не получилось его задействовать, вернее не хочет работать. Или я не умею его готовить? Какие варианты есть?
Через QTextDocument делаю так:
QStyleOptionViewItem options = option;
initStyleOption(&options, index);
painter->save();
QTextDocument doc;
QFont font = doc.defaultFont();
font.setPixelSize(12);
doc.setDefaultFont(font);
QTextOption opt(options.displayAlignment);
if(index.column() == 9)
{
opt.setAlignment(Qt::AlignVCenter | Qt::AlignLeft);
}
else
opt.setAlignment(Qt::AlignCenter);
opt.setWrapMode(QTextOption::WordWrap);
doc.setDefaultTextOption(opt);
doc.setHtml(options.text);
painter->translate(options.rect.left(), options.rect.top());
QRect clip(0, 0, options.rect.width(), options.rect.height());
doc.drawContents(painter, clip);
painter->restore();
Спасибо.