gibt es bei python die möglichkeit die frame oder canvas-größe
abzufragen.
alles was ich bissher versucht habe war leider erfolglos.
fenster-größe abfragen
-
- Python-Forum Veteran
- Beiträge: 1209
- Registriert: Montag 29. September 2003, 17:18
- Wohnort: Purkersdorf (bei Wien [Austria])
Hi!
Welches GUI-Toolkit?
Bei Tkinter gibt's winfo_height(), winfo_width(), oder winfo_geometry(). Kleines Beispiel:
Gruß, mawe
Welches GUI-Toolkit?
Bei Tkinter gibt's winfo_height(), winfo_width(), oder winfo_geometry(). Kleines Beispiel:
Code: Alles auswählen
from Tkinter import *
def show():
g = c.winfo_geometry()
h = c.winfo_height()
w = c.winfo_width()
print g,h,w
root = Tk()
c = Frame(width=200,height=300) # oder Canvas
c.pack()
Button(text="Ok",command=show).pack()
root.mainloop()
hi mawe,
danke für die schnelle antwort.
ich möchte sowas machen:
ich versuche gerade ein paar java-classen
nach python zu übersetzen, habe leider noch
keine große python-erfahrung
danke für die schnelle antwort.
ich möchte sowas machen:
Code: Alles auswählen
l = Label()
l["text"] = c.winfo_geometry()
l.pack()
nach python zu übersetzen, habe leider noch
keine große python-erfahrung
noch mal eine kurze erläuterung meines problems,
ich möchte das winfo_geometry() oder die anderen winfo_ -funktionen
bei der erzeugung des frames oder canvas, die fenster-groeße liefert,
nicht erst nach action wie button-druck.
ich möchte zum beispiel ein fenster "groeßer ziehen" und mir dabei die geänderten werte (z.b. height ) direct ausgeben lassen.
gibt es da irgend etwas?
danke
ich möchte das winfo_geometry() oder die anderen winfo_ -funktionen
bei der erzeugung des frames oder canvas, die fenster-groeße liefert,
nicht erst nach action wie button-druck.
ich möchte zum beispiel ein fenster "groeßer ziehen" und mir dabei die geänderten werte (z.b. height ) direct ausgeben lassen.
gibt es da irgend etwas?
danke
-
- Python-Forum Veteran
- Beiträge: 1209
- Registriert: Montag 29. September 2003, 17:18
- Wohnort: Purkersdorf (bei Wien [Austria])
Hi!
Ich hab gedacht die Frage ist schon beantwortet ...
Also meinst Du sowas:
Naja, irgendwie haut das nicht so ganz hin. Es wird nur die veränderte Breite angezeigt
Das lass ich Dir als Knobelaufgabe 
Gruß, mawe
Ich hab gedacht die Frage ist schon beantwortet ...

Also meinst Du sowas:
Code: Alles auswählen
from Tkinter import *
def resize(e):
label["text"] = "%i x %i" % (frame.winfo_width(), frame.winfo_height())
root = Tk()
frame = Frame()
frame.bind("<Configure>", resize)
frame.pack(fill=BOTH)
label = Label(frame)
label["text"] = frame.winfo_geometry()
label.pack()
root.mainloop()


Gruß, mawe
-
- Python-Forum Veteran
- Beiträge: 1209
- Registriert: Montag 29. September 2003, 17:18
- Wohnort: Purkersdorf (bei Wien [Austria])
mawe hat geschrieben: Naja, irgendwie haut das nicht so ganz hin. ...
Code: Alles auswählen
frame.pack(fill=BOTH,expand=1)

Gruß, mawe
ich hab eine kleine frage zu demselben thema:
wann genau wird hier die resize-funktion ausgelöst?? es scheint ja mit dem <configure> zusammen zu hängen... aber ich versteh nicht genau wie. oder läuft die funktion ständig durch?
wann genau wird hier die resize-funktion ausgelöst?? es scheint ja mit dem <configure> zusammen zu hängen... aber ich versteh nicht genau wie. oder läuft die funktion ständig durch?
Das ist Event Handling. <Configure> beschreibt ein Event was vom User in TKinter
ausgelöst wird. Jedesmal wenn du die Größe des Fenster änderst, wird die Resize Funktion aufgerufen. Es gibt noch viele andere Arten von Events.
Gute Liste ist hier:
http://www.pythonware.com/library/tkint ... ndings.htm
gruss
ausgelöst wird. Jedesmal wenn du die Größe des Fenster änderst, wird die Resize Funktion aufgerufen. Es gibt noch viele andere Arten von Events.
Gute Liste ist hier:
http://www.pythonware.com/library/tkint ... ndings.htm
gruss
Zuletzt geändert von pr0stAta am Dienstag 28. März 2006, 15:14, insgesamt 1-mal geändert.