カスタムカラー(各行に関連するデータに応じて)を使用して、QTreeViewウィジェットの列の1つにテキストを描画したいと思います。drawRow()で保護されたメソッドをオーバーロードし、次のようにスタイルオプションパラメーターを変更しようとしました(簡略化された例)。
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
色の役割も変更しようとしました)。