grösse abslout festlegen

Fragen zu Tkinter.
Gast

Montag 18. August 2003, 22:49

hi!

wie lässt sich mit tkinter die grösse festlegen und zwar ohne wenn und aber?

kann man ausserdem die fenstersymbole wie z.b maximieren unterdrücken?

mfg

roland
lbuega
User
Beiträge: 75
Registriert: Dienstag 15. April 2003, 08:51
Wohnort: Weissach

Dienstag 19. August 2003, 09:17

Hallo Roland,

meinst Du die Fenstergröße?
Die kannst Du mit root.maxsize(420, 230) steuern. Hast Du das angegeben, dann funktioniert auch maximieren nicht mehr (zumindest bei mir unter UNIX), angezeigt wirds allerdings trotzdem noch. Die Zahlen sind natürlich die von Dir gewünschte Fenstergröße.
Gast

Dienstag 19. August 2003, 13:40

das beeindruckt ihn leider gar nicht mit maxsize :(
Benutzeravatar
wuf
User
Beiträge: 1492
Registriert: Sonntag 8. Juni 2003, 09:50

Dienstag 19. August 2003, 19:31

Hallo rolgal

Probier einmal folgendes:

Lege die gewünschte Grösse des Fensters zu Beispiel root mit
folgender Anweisung fest:

root.wm_geometry(Deine Grösse)

und dann gebe als nächste Anweisung

root.resizable(0,0)

ein.

Gruss wuf
Take it easy Mates!
Gast

Dienstag 19. August 2003, 20:30

hi

also, wie ist denn die grösse anzugeben? ich frage......weil wenn ich 2 werte angebe ich eine fehlermeldung bekomme.

mfg

roland
Benutzeravatar
wuf
User
Beiträge: 1492
Registriert: Sonntag 8. Juni 2003, 09:50

Dienstag 19. August 2003, 22:08

Hallo Roland

Hier ist der Code für die Grössenangabe. Sieht ein bisschen
kompliziert aus. Vielleicht gibt es einfachere lösungen. Es
braucht total 4 Werte.

Code: Alles auswählen

	sLeft   =  "%s" % 20    # X-Position auf dem Bildschirm (linke obere Ecke in Pixels)
	sTop    =  "%s" % 20    # Y-Position auf dem Bildschirm (linke obere Ecke in Pixels)
	sWidth  =  "%s" % 300   # Breite (Pixels)
	sHeight =  "%s" % 400   # Höhe   (Pixels)

	root.wm_geometry(sWidth+"x"+sHeight+"+"+sLeft+"+"+sTop)

Gruss Fritz
Take it easy Mates!
Gast

Dienstag 19. August 2003, 22:28

hi wuf

thank you, it sucks.

oder wie man da auch immer sagt :D

bis bald

roland
lbuega
User
Beiträge: 75
Registriert: Dienstag 15. April 2003, 08:51
Wohnort: Weissach

Donnerstag 21. August 2003, 08:38

Scheint wohl auf UNIX/Windows-System unterschiedlich zu sein, da mein Fenster mit "wm_geometry()" nicht unveränderbar ist.

etwas übersichtlicher geschrieben siehts so aus:

Code: Alles auswählen

 root.wm_geometry('20x20+300+400') 
Gast

Donnerstag 21. August 2003, 08:43

hi

ich verwende nicht windows sondern linux, somit ist es noch verwunderlicher wenn es da unterschiede gibt, zwischen der unix und linux version.
Gast

Donnerstag 21. August 2003, 09:57

wäre zu wissen, wie man nur x und y position am bildschirm angeben kann.

kannst du mir da nochmal weiterhelfen? denn der wm_geometry() erwartet gibt einen error aus, wenn man nur die zwei werte angeben will.

vielen dank

roland
Benutzeravatar
wuf
User
Beiträge: 1492
Registriert: Sonntag 8. Juni 2003, 09:50

Donnerstag 21. August 2003, 23:05

Hallo Freunde
Ich habe hier noch einige Tips mit Code
zum experimentieren. Die TK-Geometrie
Anweisung hat mich bei meinen ersten
Programmierung mit TK-GUI ein wenig
durcheinander gebracht, speziell die
Übergabe der Dimensionen als String-
Kombination.
Übrigens Grösse des Fensters ist erst
nach folgender Anweisung nicht mehr
veränderbar:

root.resizable(0,0)

All the best mates and stay clean!

Code: Alles auswählen

#~~ Hier noch einige Versuche um die Geometrie
#   und das Verhalten eines Root- oder Toplevel-
#   Fenster zu ändern

#~~ Veruch-1
	#~~ Verändert x und y Position
	xpos  = 200
	ypos  = 200
	root.wm_geometry("+%d+%d" % (xpos,ypos))

#~~ Versuch-2
	#~~ Verändert die Breite und Höhe
	width  = 200
	height = 200
	root.wm_geometry("%dx%d"  % (width,height))

#~~ Versuch-3
	xpos   = 200
	ypos   = 200
	width  = 200
	height = 200
	root.wm_geometry("%dx%d+%d+%d" % (width,height,xpos,ypos))

	#~~ Das Fenster wird unsichtbar
	root.withdraw()

	#~~ Das Fenster wird sichtbar
	root.deiconify()

	#~~ Das Fenster wird zum obersten
	root.transient()

	#~~ Grösse des Fensters ist nicht veränderbar
	root.resizable(0,0)

	#~~ Das Fensters ist nur horizontal veränderbar
	root.resizable(1,0)

	#~~ Das Fensters ist nur vertikal veränderbar
	root.resizable(0,1)

	#~~ Das Fensters ist horizontal und vertikal veränderbar
	root.resizable(1,1)

# Gruss Fritz
Take it easy Mates!
Tkinter-Einsteiger

Montag 15. März 2004, 16:06

ist es auch möglich die Breite und Höhe in Prozent anzugeben?

sLeft = "%s" % 0 # X-Position auf dem Bildschirm (linke obere Ecke in Pixels)
sTop = "%s" % 0 # Y-Position auf dem Bildschirm (linke obere Ecke in Pixels)
sWidth = "%s" % 1024 # Breite (Pixels)
sHeight = "%s" % 716 # Höhe (Pixels)

So, dass es nicht abhängig von der Bildschrimauflösung ist.
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Montag 15. März 2004, 19:44

Hi Tkinter-Einsteiger,
ist es auch möglich die Breite und Höhe in Prozent anzugeben?
% von was? Das fragt sich Tkinter dann sicher auch.
Wenn Du weisst von was die xx% sein sollen, kannst Dir den echten Wert in Pixeln ja ausrechnen.


Gruß

Dookie
Gast

Montag 15. März 2004, 19:59

Die Fläche in Prozent der Gesamtfläche des Monitors.
Wenn ich Höhe und Breite in Pixel angebe, ist es von Auflösung zu Auflösung verschieden. Wenn ich jetzt aber meinetwegen 80 % der Vollbildbreite eingebe, sollte das Fenster eben 80 % derselben groß sein.
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Montag 15. März 2004, 21:48

Hi, das geht wie Dookie schon sagte, ganz einfach: selbst die anzahl der Pixel ausrechnen. Die Bildschirmauflösung erhälst du ganz einfach durch root.winfo_vrootwidth() und root.winfo_vrootheight() . Danach dürfte dein Problem ziemlich leicht zu lösen sein...

mfg, Milan
Antworten