Bir QTreeView widget'ındaki sütunlardan birinde özel bir renk kullanarak (her satırla ilgili verilere bağlı olarak) metin çizmek istiyorum. Ben drawRow() korumalı yöntemi aşırı ve bunun gibi stil seçeneği parametre (sadeleştirilmiş örnek) değiştirmeye çalıştı:QTreeView içinde belirli dizinler için özel metin rengi
virtual void drawRow(QPainter* p_painter, const QStyleOptionViewItem& option,
const QModelIndex& index) const
{
QStyleOptionViewItem optionCustom = option;
if (index.column() == 2)
{
optionCustom.palette.setColor(QPalette::Text, Qt::red);
}
QTreeView::drawRow(p_painter, optionCustom, index);
}
Ama açıkçası ben bu çünkü şey eksik çalışmak görünmüyor (Denedim QPalette::WindowText
renk rolünü de değiştirin).
teşekkürler! 'Data()' yönteminin öğenin görünümü için de kullanıldığını bilmiyordum. Özel bir item delegesi kullanarak istediğim şeyi, bir 'paint()' yöntemiyle geçersiz kıldım, ancak 'data() yöntemini kullanarak, bu yöntem çok daha şık. –
@ VladoKlimovský evet ama görünüşe göre içerik ve görünümün ayrı ele alınmasını istedikleri için (modele karşı delege) görünüm için kullanılması gerektiğini düşünmeyen bazı püristler var. – neuronet