में कुछ इंडेक्स के लिए कस्टम टेक्स्ट रंग मैं एक कस्टम रंग (प्रत्येक पंक्ति से संबंधित डेटा के आधार पर) का उपयोग कर QTreeView विजेट में कॉलम में से किसी एक में ग्रंथों को आकर्षित करना चाहता हूं। मैं drawRow() की रक्षा की विधि को ओवरलोड और इस तरह शैली विकल्प पैरामीटर (एक छीन नीचे उदाहरण) को बदलने की कोशिश:QTreeView
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);
}
लेकिन स्पष्ट रूप से मैं इस वजह से कुछ याद आ रही है काम करने के लिए प्रतीत नहीं होता है (मैं करने की कोशिश की QPalette::WindowText
रंग भूमिका भी बदलें)।
धन्यवाद! मुझे नहीं पता था कि 'डेटा() 'विधि का उपयोग आइटम की उपस्थिति के लिए भी किया जाता है। मैंने एक कस्टम आइटम प्रतिनिधि का उपयोग करके एक ओवरराइड 'पेंट()' विधि के साथ कार्यान्वित किया था, लेकिन 'डेटा()' विधि का उपयोग करना कभी भी अधिक सुरुचिपूर्ण है। –
@ VladoKlimovský हाँ लेकिन कुछ शुद्धवादी हैं जो नहीं सोचते कि इसे उपस्थिति के लिए इस्तेमाल किया जाना चाहिए, क्योंकि वे सामग्री और उपस्थिति को अलग से संभालना चाहते हैं (मॉडल बनाम प्रतिनिधि)। – neuronet