grösse abslout festlegen

Fragen zu Tkinter.
Gast

grösse abslout festlegen

Beitragvon 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
Benutzeravatar
lbuega
User
Beiträge: 75
Registriert: Dienstag 15. April 2003, 08:51
Wohnort: Weissach

Beitragvon lbuega » 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

nö leider....

Beitragvon Gast » Dienstag 19. August 2003, 13:40

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

Beitragvon wuf » 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

hm.....

Beitragvon 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: 1360
Registriert: Sonntag 8. Juni 2003, 09:50

Beitragvon wuf » 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

yeah

Beitragvon Gast » Dienstag 19. August 2003, 22:28

hi wuf

thank you, it sucks.

oder wie man da auch immer sagt :D

bis bald

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

Beitragvon lbuega » 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

linux

Beitragvon 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

auch noch interessant...

Beitragvon 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: 1360
Registriert: Sonntag 8. Juni 2003, 09:50

Beitragvon wuf » 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

Beitragvon 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.
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » 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

Beitragvon 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

Beitragvon Milan » 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

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder