[Edit - Neue Fragen zu] QTreeWidget (Styles, Multi-Select)

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Xinor
User
Beiträge: 13
Registriert: Montag 31. Mai 2010, 11:51

Edit: Neue Fragen im dritten Beitrag.

Hi,

ich hätte gerne eine Gruppe von Buttons, Labels, QLineEdits, usw. die ich über z.B. ein "+" aufklappen oder über ein "-" zuklappen kann.
So wie man es aus vielen Programmen kennt. Wie implementiert man so was am besten? Über ein QTreeWidget? Oder gibt es da eine andere Möglichkeit?
Würde mich über Ideen, Tips und auch über Links (Beispiele) freuen.
Zuletzt geändert von Xinor am Mittwoch 11. August 2010, 21:39, insgesamt 2-mal geändert.
lunar

Diese Beschreibung deutet schon auf ein TreeWidget oder TreeView hin. Beispiele findest Du in der Dokumentation von Qt.
Xinor
User
Beiträge: 13
Registriert: Montag 31. Mai 2010, 11:51

Mit QTreeWidget klappt es recht gut. Nur habe ich noch ein paar Probleme.
Z.B. mit blabla.setStyleSheet("QTreeWidget { selection-background-color: lightGrey;}") kann man die Farbe ändern, aber wie kann ich es ganz abschalten.
Will diese "selection" gar nicht haben.
2. Wie kann man die Umrandung des TreeWidgets ausschalten?
3. Kann man irgendwie mehrere Items markieren und sich diese zurückgeben lassen?
4. Ich würde gerne die Textfarbe von allen QTreeWidgetItems ändern und zwar nicht einzeln, sondern mit so was wie .setStyleSheet.

Habe recht viel gegooglt, doch leider ohne Erfolg. Hoffe mir kann hier jemand helfen.
lunar

@Xinor: Du willst mit einer unsichtbaren Auswahl mehrere Elemente auswählen? Ich frage besser nicht, wozu das gut sein soll ...

Um mehrere Elemente auswählen zu können, muss ".selectionMode" auf "QAbstractItemView.ExtendedSelection" gesetzt werden. Anschließend kannst Du mit ".selectedIndexes()" alle ausgewählten Elemente abfragen. Die Umrandung kannst Du abschalten, indem Du im Stylesheet für "QTreeWidget" die Eigenschaft "border" auf "none" setzt. Analog kannst Du auch die "selection-background-color" deaktivieren. Die Textfarbe der Elemente kannst Du ebenfalls im Stylesheet ändern, in dem Du die Eigenschaft "color" für "QTreeWidet::item" entsprechend setzt.

Das alles wird im Übrigen in der Qt-Dokumentation erläutert. Ich schlage Dir daher vor, erst mal Qt Style Sheets sowie die Dokumentation der verwendeten Klassen (e.g. QTreeWidget) zu lesen, bevor Du weiter programmierst, denn ewig werde ich Dir die Dokumentation bestimmt nicht vorlesen.

PS: Höre bitte auf, die ursprünglichen Beiträge zu editieren. Man findet Deine Fragen auch, wenn Du den Titel nicht aktualisierst. Danke.
Xinor
User
Beiträge: 13
Registriert: Montag 31. Mai 2010, 11:51

Danke Dir. Am Anfang ist es nicht so leicht durchzublicken.
Antworten