Seite 1 von 1

ttk (T)Frame

Verfasst: Montag 20. Juli 2009, 09:21
von RedSharky
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)?

Verfasst: Montag 20. Juli 2009, 20:48
von kaytec
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

Verfasst: Dienstag 21. Juli 2009, 08:21
von RedSharky
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...

Verfasst: Dienstag 21. Juli 2009, 09:47
von RedSharky
Ich hab gerade eine tolle Dokumentation zu Tk 8.5 aufwärts gefunden:

TkDocs
http://www.tkdocs.com/