Seite 1 von 1

fenster-größe abfragen

Verfasst: Montag 9. August 2004, 14:26
von micha
gibt es bei python die möglichkeit die frame oder canvas-größe
abzufragen.
alles was ich bissher versucht habe war leider erfolglos.

Verfasst: Montag 9. August 2004, 14:50
von mawe
Hi!

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()
Gruß, mawe

Frame-größe abfragen

Verfasst: Dienstag 10. August 2004, 13:51
von micha
hi mawe,

danke für die schnelle antwort.

ich möchte sowas machen:

Code: Alles auswählen

l = Label()
l["text"] = c.winfo_geometry() 
l.pack()
ich versuche gerade ein paar java-classen
nach python zu übersetzen, habe leider noch
keine große python-erfahrung

nochmal frame, oder canvas-groeße

Verfasst: Freitag 13. August 2004, 13:53
von micha
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

Verfasst: Freitag 13. August 2004, 14:13
von mawe
Hi!

Ich hab gedacht die Frage ist schon beantwortet ... :wink:
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()
Naja, irgendwie haut das nicht so ganz hin. Es wird nur die veränderte Breite angezeigt :? Das lass ich Dir als Knobelaufgabe :wink:

Gruß, mawe

Verfasst: Freitag 13. August 2004, 14:53
von mawe
mawe hat geschrieben: Naja, irgendwie haut das nicht so ganz hin. ...

Code: Alles auswählen

frame.pack(fill=BOTH,expand=1)
Jetzt klappts :D

Gruß, mawe

Verfasst: Freitag 13. August 2004, 15:27
von Gast
danke mawe,

war genau das was ich brauchte

gruß micha

Verfasst: Dienstag 28. März 2006, 11:59
von geogre
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?

Verfasst: Dienstag 28. März 2006, 14:58
von pr0stAta
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

Verfasst: Dienstag 28. März 2006, 15:06
von geogre
genial! das bringt mich wieder einen mittelkleinen satz weiter :) tausend dank