TableView

Alles rund um die Programmierung mit Qt
Antworten
pschnot1000
Beiträge: 15
Registriert: 30. Mai 2017 13:05

TableView

Beitrag von pschnot1000 »

Hallo

Ich habe mir eine Tabelle in TableView erstellt. Durch anklicken lässt sich die Hintergrundfarbe jedes einzelnen Elements umstellen.
Jetzt möchte ich die Farbe des Feldes allerdings gern wieder auslesen.
Beim TableWidget konnte ich das über item->backgroundcolor machen.
Bei TableView hab ich allerdings noch nichts gefunden oder muss ich die Farbe über QStandartItemModel finden?

Danke
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: TableView

Beitrag von Christian81 »

Bei einem View ist ein Model dahinter. In deinem Fall wohl ein QStandardItemModel. Dort sind alle relvanten Daten gespeichert.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
pschnot1000
Beiträge: 15
Registriert: 30. Mai 2017 13:05

Re: TableView

Beitrag von pschnot1000 »

Ja das weiß ich, hatte ich ja auch hingeschrieben.
Hab in der Dokumentation auch schon gesucht, aber noch nicht so richtig gefunden wie ich an die Hintergrundinformation einer Zelle komme.
Vlt. weiß jmd da noch was genaueres?
VG
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: TableView

Beitrag von Christian81 »

Die einzelnen QStandardItems haben doch sogar eine Funktion namens background() ... https://doc.qt.io/qt-5/qstandarditem.html#background
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
pschnot1000
Beiträge: 15
Registriert: 30. Mai 2017 13:05

Re: TableView

Beitrag von pschnot1000 »

Hmm das stimmt. Danke.

Leider komm ich noch nicht so richtig zur Farbe.
Ich hab mir aus dem QStandardItemModel ein QStandardItem, welches auf den item index zugreift erzeugt.
und versuche jetzt über:

Code: Alles auswählen

my_item->background().color().name()
den QBrusch von Background in einen String umzuwwandeln. Jedoch kommt folgende Fehlermeldung:
Fehler: no match for 'operator<<' (operand types are 'std::ostream {aka std::basic_ostream<char>}' and 'QString')

^
pschnot1000
Beiträge: 15
Registriert: 30. Mai 2017 13:05

Re: TableView

Beitrag von pschnot1000 »

Hat sich erledigt.
Arbeite jetzt direkt mit dem QBrush von background().
Sicherheitshalber würde ich trotzdem noch gern wissen wollen, wie ich das konvertiere, da ich da immer Fehler hab.

Danke für den Tipp mit QStandardItem!
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: TableView

Beitrag von Christian81 »

Wenn man einen QString mittels std::cout ausgeben will, muss man ihn in die korrekte locale konvertieren -> QString::toLocal8Bit().data()
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten