我希望能绘制一个自定义项委托,与当前样式保持一致。但是在文本颜色方面,“WindowsVista/7”样式和“WindowsClassic”存在差异。
我正在使用以下代码绘制背景(有效):
如何以正确的颜色绘制文本?
我不能使用
我尝试使用
我正在使用以下代码绘制背景(有效):
void FriendItemDelegate::paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const
{
painter->save();
QStyleOptionViewItem opt = option;
initStyleOption(&opt, index);
QStyle *style = opt.widget ? opt.widget->style() : QApplication::style();
QSize hint = sizeHint(opt, index);
style->drawPrimitive(QStyle::PE_PanelItemViewItem, &opt, painter, opt.widget);
...
}
如何以正确的颜色绘制文本?
我不能使用
style->drawControl(QStyle::CE_ItemViewItem, &opt, painter, opt.widget);
来绘制整个项,因为我必须绘制比一个文本行更特殊的文本。(这个函数可以正确地绘制颜色。)我尝试使用
style->drawItemText(painter, opt.rect, opt.displayAlignment, opt.palette, true, "Hello World!");
但它总是绘制黑色。对于painter->drawText()
,我不知道如何设置正确的笔颜色。
QAbstractItemModel::setData()
和Qt::ForegroundRole
。 - vahancho