@seelosp: Wieso erleichtert das die Arbeit bei anderen Programmen?
Du solltest ganz dringend von `place()` weg kommen, denn Deine GUI funktioniert sonst nur bei Dir zuverlässig. Bei einer anderen Bildschirmauflösung, anderen Schriftgrössen oder -arten, anderen Themes, usw. passen diese absoluten Positionen nicht unbedingt. Bei mir sieht das zum Beispiel gerade so aus:
Noch nicht unbenutzbar, aber auch nicht schön.
Der Test-Code ist falsch, denn es darf innerhalb eines Programms immer nur ein Exemplar von `Tk` geben. Wenn man ein zweites erstellt, ist das Verhalten undefiniert und kann von komisch bis harter Programmabsturz gehen. Weitere Fenster neben dem Hauptfenster muss man mit `Toplevel` erstellen.
Den Sternchen-Import sollte man auch lassen. Damit holst Du Dir alle Namen aus dem Modul in den Namensraum des importierenden Moduls. Spätestens wenn Du noch andere Module so importierst wird es irgend wann unübersichtlich, weil man nicht mehr so einfach heraus finden kann, welcher Name aus welchem Modul stammt. Ausserdem passieren dann auch mal schnell Namenskollisionen. Bei `tkinter` und `PIL` ist zum Beispiel `Image` beliebter Kandidat dafür.
Variablen mit mehreren Zeilen
Sorry... aber ich habe schon mal ein Programm mit 10 Tk()s geschriebenBlackJack hat geschrieben:@seelosp: Wieso erleichtert das die Arbeit bei anderen Programmen?
Du solltest ganz dringend von `place()` weg kommen, denn Deine GUI funktioniert sonst nur bei Dir zuverlässig. Bei einer anderen Bildschirmauflösung, anderen Schriftgrössen oder -arten, anderen Themes, usw. passen diese absoluten Positionen nicht unbedingt. Bei mir sieht das zum Beispiel gerade so aus:
Noch nicht unbenutzbar, aber auch nicht schön.
Der Test-Code ist falsch, denn es darf innerhalb eines Programms immer nur ein Exemplar von `Tk` geben. Wenn man ein zweites erstellt, ist das Verhalten undefiniert und kann von komisch bis harter Programmabsturz gehen. Weitere Fenster neben dem Hauptfenster muss man mit `Toplevel` erstellen.
Den Sternchen-Import sollte man auch lassen. Damit holst Du Dir alle Namen aus dem Modul in den Namensraum des importierenden Moduls. Spätestens wenn Du noch andere Module so importierst wird es irgend wann unübersichtlich, weil man nicht mehr so einfach heraus finden kann, welcher Name aus welchem Modul stammt. Ausserdem passieren dann auch mal schnell Namenskollisionen. Bei `tkinter` und `PIL` ist zum Beispiel `Image` beliebter Kandidat dafür.
Zuletzt geändert von seelosp am Samstag 28. Januar 2012, 09:54, insgesamt 1-mal geändert.
@seelosp: Bei `pack()` kann man angeben an welcher Seite des Container-Widgets platziert werden soll, und bei `grid()` an welcher Reihe/Spalte im Gitter. Man darf innerhalb eines Container-Widgets nur eine Layout-Methode verwenden, und bei `place()` sollte man immer die gleiche Seite wählen. Und wo es Sinn macht oder nötig ist, kann man `Frame`\s als Container-Widgets zum Gruppieren einführen.
Hi sellosp
Habe dein Skript zum Friseur 'Pack' gebracht. Natürlich gib es auch noch den Friseur 'Grid'. Das Skript ist nur für Experimentierzwecke gedacht. Es werden keine Eingabefehler abgefangen und damit erstellte Tk-Fensterskripte können überschrieben werden!
Tk-Window-Builder
Viel Spass beim programmieren & experimentieren!
Gruß wuf
Habe dein Skript zum Friseur 'Pack' gebracht. Natürlich gib es auch noch den Friseur 'Grid'. Das Skript ist nur für Experimentierzwecke gedacht. Es werden keine Eingabefehler abgefangen und damit erstellte Tk-Fensterskripte können überschrieben werden!
Tk-Window-Builder
Viel Spass beim programmieren & experimentieren!
Gruß wuf
Take it easy Mates!