QTreeWidget - inny kolor focusa na kolumnie

QTreeWidget - inny kolor focusa na kolumnie
0

Tak jak w tytule, czy da się zmienić focus tak żeby zaznaczona kolumna miała np. czerwony focus, a pozostały wiersz niebieski??

MarekR22
Moderator C/C++
  • Rejestracja:ponad 17 lat
  • Ostatnio:minuta
0

dziedziczysz po QStyledItemDelegate
i zmieniasz odrobinę metodę QStyledItemDelegate::paint

Kopiuj
void TwojItemDelegate::paint(QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index) const
{
      QStyleOptionViewItem newOption = option;
      if (twojWarunekNaKomorke(index))
      {
            newOption.palette.setBrush(QPalette::Highlight, Qt::red);
            newOption.palette.setBrush(QPalette::HighlightedText, Qt::yellow);
      }
      QStyledItemDelegate::paint(painter, newOption, index);
}

A potem to tyko formalność, trzeba ustawić tego delegata na widoku:

Kopiuj
void MainWIndow::SetupItemView()
{
    ui->tableView->setDelegate(new TwojItemDelegate(ui->tableView));
}

I to tyle. Istotnego kodu zaledwie 4-6 linijek reszta to tylko dekoracja.


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.
edytowany 1x, ostatnio: MarekR22

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.