2013-03-16 22 views
6

Mam QTableView zawierający wiersze danych z bazy danych. Jednak ustawienie setAlternatingRowColors (true) powoduje jedynie zmianę kolorów wierszy zawierających dane - reszta tabeli jest po prostu biała, co nie jest zachowaniem, którego można się spodziewać (na przykład na liście zakładek dowolnej przeglądarki - puste wiersze mają naprzemiennie zabarwienie).Qt: QTableWidget/QTableView zmienne kolory wierszy w pełnej rzutni

Czy ktoś zna umowę o pracę lub alternatywę dla widoków tabel dostarczonych przez Qt? Przeszukałem arkusze stylów i delegatów przedmiotów, ten sam rezultat.

+0

Czy znalazłeś coś samemu? Mam ten sam problem. – PrisonMonkeys

+2

Zamiast tego użyłem QTreeView/QTreeWidget. To łatwe, dzięki czemu zachowują się jak stoły. Jednak oczywiście QTable * i QTree * powinny zachowywać się w ten sam sposób, jeśli chodzi o wypełnianie pustych wierszy zmiennymi kolorami, ale ... – Zumteufel

Odpowiedz

2

Można reimplement data() metodę modelu tak:

QVariant MyModel::data(const QModelIndex& index, int role) const 
{ 
    if(role == Qt::BackgroundColorRole) 
     return color; 
    ... 
} 

Powinno być możliwe, aby zrobić to samo z wykorzystaniem setModelData() delegata.

+0

Czy to działa dla pustych wierszy danych? – Zumteufel

+0

Powinno. W moim przypadku to działa. Możesz spróbować tego nie zajmie dużo czasu. – Funt

Powiązane problemy