ttk (T)Frame

Fragen zu Tkinter.
Antworten
RedSharky
User
Beiträge: 99
Registriert: Donnerstag 13. April 2006, 15:38

Hi Leute!

Ich verstehe nicht wie man in Python 3 nun Frames einstetzen soll. Leider gibt es in der Doku ( http://docs.python.org/3.1/library/tkinter.ttk.html) kein geeignetes Beispiel.

Für Label heißt es dort:

Code: Alles auswählen

style.configure("BW.TLabel", foreground="black", background="white")
Was ich nicht verstehe ist "BW.TLabel". Das ist der Name des Styles, schon klar.
Aber wieso genau "TLabel"?
Und was bedeutet das "BW." davor?
Schließlich geht auch "blabla.TLabel".
Wo kann man was darüber nachlesen?

Ich habe analog für einen Frame dann mal "TFrame" ausprobiert; geht, aber dann für alle Frames.
Aber wie erstelle ich einen eigenen Style für TFrame! "blabla.TFrame" geht schließlich nicht.
Irgendwie ist mir die ganze Benamung nicht klar.

Und wie steht es mit den Keywords: Wo kann ich die alle nachlesen? Oder kann man die irgendwie ausgeben lassen (Shellkommando)?
Benutzeravatar
kaytec
User
Beiträge: 608
Registriert: Dienstag 13. Februar 2007, 21:57

Hallo RedSharky !

Du kannst eigene "styles" für deine widgets machen und diese verwenden - so verstehe ich es. Kann es aber nicht ausprobieren. Der eigene Style in dem Beispiel heißt "BW.TLabel".

gruß Frank
RedSharky
User
Beiträge: 99
Registriert: Donnerstag 13. April 2006, 15:38

Ja, das habe ich auch so verstanden. Und so würde es auch Sinn machen.

Nur wie erstellt man eigene Styles?

Laut Python-Fehlermeldung, also wenn man statt z. B. "TFrame" einfach "etwasanderes" einträgt, handelt es sich bei diesem TFrame um ein Tcl-Layout. D. h. TFrame (oder TLabel etc.) ist nicht frei wählbar, sondern ist fest definiert. Nur ich kann nirgendwo, auch in den Tcl-Manpages nicht, etwas über TFrames und konsorten finden. Deshalb ist mir die genaue Einsatzweise eigener Styles unklar.

So kann man sich z. B. verschiede eigene Styles für Labels erstellen:

Code: Alles auswählen

style.configure("meinLabelStyle1.TLabel", foreground="black", background="white")

Code: Alles auswählen

style.configure("meinLabelStyle2.TLabel", foreground="blue", background="red")
Mit TFrame funktionert das leider nicht (obwohl das meiner Meinung nach logisch wäre). Anscheinend hab ich da was nicht verstanden. Nur ich finde leider nichts, wo ich das nachlesen könnte. Nun bin ich auf der Suche nach einem Demo-Programm, das die neuen Styles von ttk mit mehreren unterschiedlichen Frames einsetzt...
RedSharky
User
Beiträge: 99
Registriert: Donnerstag 13. April 2006, 15:38

Ich hab gerade eine tolle Dokumentation zu Tk 8.5 aufwärts gefunden:

TkDocs
http://www.tkdocs.com/
Antworten