QStyledItemDelegate и переопределяю метод paint:
'''
if (const auto data = i_index.data(); data.isValid())
{
QString text = data.isNull() ? NoTR("") : data.toString();
if (text.isEmpty())
{
ip_painter->save();
QStyleOptionViewItem custom_option(i_option);
initStyleOption(&custom_option, i_index);
custom_option.text = tr("Placeholder");
custom_option.palette.setColor(QPalette::Text, QColor("#a0a0a0"));
const QWidget* widget = custom_option.widget;
QStyle* style = widget ? widget->style() : QApplication::style();
style->drawControl(QStyle::CE_ItemViewItem, &custom_option, ip_painter, widget);
ip_painter->restore();
return;
}
}
QStyledItemDelegate::paint(ip_painter, i_option, i_index);
'''
Но это изменение цвета, пока сделанное на коленке, работает только для не-селектнутой строки (скрин вверху сообщения)
Этот вариант работает, да. Но пока ищу альтернативы
Обсуждают сегодня