pady bei Frames in Python 2.2

Fragen zu Tkinter.
Antworten
Holyfive
User
Beiträge: 2
Registriert: Montag 10. Juli 2006, 13:11

Montag 31. Juli 2006, 10:37

Hallo,

ich habe ein kleines grafisches Tool in Python 2.4 geschrieben, welches ich nun auf unserem Server bereitstellen wollte. Das Problem: Dort läuft Python 2.2 und dieses kennt offenbar den Parameter "pady" bzw. "padx" bei Frames noch nicht. Hab's daher rausgenommen, jetzt sieht das Ganze nicht wirklich hübsch aus. Gibt's in der Version einen anderen Parameter, der die Funktionalität bietet?
CU, Patrick
Benutzeravatar
Michael Schneider
User
Beiträge: 567
Registriert: Samstag 8. April 2006, 12:31
Wohnort: Bremen
Kontaktdaten:

Montag 31. Juli 2006, 20:59

Moin Patrick,

ich arbeite auf der Arbeit mit Python 2.2 und habe dort schon einige grafische Oberflächen programmiert, ohne dass mir dieses Phänomen aufgefallen wäre.

Wozu benötigst Du den Rahmen genau und welchen Geometriemanager verwendest Du?
Wenn Du ihn nur zum Gruppieren benötigst, kannst Du ja mal die ressourcen ipadx und ipady probieren.

Notfalls kannst Du den Rahmen mit einem anderen Geometriemanager (Place?) plazieren. Über diesen Geometriemanager solltest Du eigentlich alles hinbekommen, wenngleich etwas umständlicher.

Vielleicht hilft Dir dieses kleine Beispiel zur Plazierung mit Place weiter:

Code: Alles auswählen

from Tkinter import *

tk = Tk()
tk.config(width = 600, height = 400)

w, h = 400, 200
frame = Frame(tk, width = w, height = h, bd = 2, relief = RIDGE)
frame.place(relx=0.5, rely=0.5, x = -w/2, y = -h/2)

tk.mainloop()
Ich werde mir das morgen noch einmal vor Ort ansehen.

Grüße,
der Michel
Diese Nachricht zersört sich in 5 Sekunden selbst ...
Benutzeravatar
Michael Schneider
User
Beiträge: 567
Registriert: Samstag 8. April 2006, 12:31
Wohnort: Bremen
Kontaktdaten:

Dienstag 1. August 2006, 07:54

Moinmoin,

ich habe mal folgenden kleinen Test durchgeführt:

Code: Alles auswählen

from Tkinter import *

tk = Tk()

frame = Frame(tk, bd = 2, relief = RIDGE, width = 400, height = 300)
frame.grid(padx = 40, pady = 30)				 ##	grid manager
#frame.pack(side = LEFT, padx = 40, pady = 30)	 ##	pack manager

tk.mainloop()
Alles läuft einwandfrei, mit GRID- und PACK-Geometriemanager. Ich verwende Version 2.2.2. Kannst Du mal die Fehlermeldung posten?

Grüße,
der Michel
Diese Nachricht zersört sich in 5 Sekunden selbst ...
Holyfive
User
Beiträge: 2
Registriert: Montag 10. Juli 2006, 13:11

Dienstag 1. August 2006, 07:56

Hallo Michel,

danke für Deine Antwort, bin aber heute morgen auch selbst drauf gekommen. Anscheinend müssen Parameter wie "padx" und "pady" bei Python 2.2 noch mit in den "pack()"-Aufruf geschrieben werden, bei 2.4 kann man sie z.B. auch direkt dem Frame-Konstruktor mitgeben.
CU, Patrick
Antworten