Seite 1 von 1

Fenster auf dem Bildschirm

Verfasst: Sonntag 12. April 2009, 22:29
von Pascal
mal wieder eine Frage von mir:

Kann man festlegen wo das Fenster auf dem Bildschirm erscheinen soll?

Danke im Voraus

Verfasst: Montag 13. April 2009, 01:43
von problembär
Ja,

Code: Alles auswählen

pydoc Tkinter.Tk.geometry
Gruß

Verfasst: Montag 13. April 2009, 22:13
von Pascal
Vielen Dank erstmal

Allerdings komm ich damit nicht weiter :?

wenn ich jetzt ein fenster erstelle:

from Tkinter import *

fenster=Tk()

welche Zeile muss ich ergänzen damit das Fenster z.B. links unten auf dem Bildschirm erscheint?

Verfasst: Dienstag 14. April 2009, 11:08
von wuf
Hallo Pascal

Hier ein Beispiel:

Code: Alles auswählen

# Skriptname: window_position_01.py (wuf)

# Funktion: Erstellt ein Bildschirm zentriertes Tk-Anwendungsfenster und
#           gibt seine geometrischen Daten auf die Konsole aus

import Tkinter as tk

app_win = tk.Tk()

#~~ Ermittle Bildschirmabmessungen
screen_width  = int(app_win.winfo_screenwidth())
screen_height = int(app_win.winfo_screenheight())

#~~ Abmessungen des Anwendungsfensters
app_win_width = 300
app_win_height = 300

#~~ Berechnung fuer ein Bildschirm zentriertes Anwendungsfenster
app_win_xpos = (screen_width - app_win_width) / 2
app_win_ypos = (screen_height - app_win_height) / 2

#~~ Platziere das Anwendungsfenster
app_win.wm_geometry("%dx%d+%d+%d" % (app_win_width, app_win_ypos, app_win_xpos,
    app_win_ypos))

#~~ Ausgabe der Geometriedaten des Anwendungsfensters
app_win.update_idletasks()
geom = app_win.wm_geometry().replace("x","+")
width, height, xpos, ypos = tuple(map(int, geom.split("+")))

print "Fenstergeometrie: xpos = %d, ypos = %d, width = %d, height = %d" % (
    xpos, ypos, width, height)

app_win.mainloop()
Gruss wuf :wink:

Verfasst: Dienstag 14. April 2009, 17:44
von hendrikS
Da waren ein paar kleine CopyPaste Fehler:

Zeile 21:

Code: Alles auswählen

app_win.wm_geometry("%dx%d+%d+%d" % (app_win_width, app_win_height, app_win_xpos, app_win_ypos))
Zeile 29 vereinfacht, Zeile 31 korrigiert:

Code: Alles auswählen

whxy = tuple(geom.split("+"))
print "Fenstergeometrie: width = %s, height = %s, xpos = %s, ypos = %s" % whxy
Sonst habe ich mir das gleich mal in meine Snippetsammlung gelegt.

Verfasst: Dienstag 14. April 2009, 18:20
von wuf
Hallo hendrikS

Du hast natürlich recht. Danke für deine Aufmerksamkeit, Korrekturen und Verbesserung. Von deiner Verbesserung in Zeile 29 habe ich auch wieder etwas profitiert.

Gruss wuf :wink:

Verfasst: Dienstag 14. April 2009, 19:51
von problembär
Allerdings komm ich damit nicht weiter
Wer pydoc-Seiten nicht lesen kann, wird in Python überhaupt nicht viel weiterkommen, sondern stattdessen immer nur die anderen mit Fragen nerven, die überflüssig wären, wenn er pydoc-Seiten lesen könnte.

Mit den Angaben hätte man übrigens sonst auch Google fragen können:

http://infohost.nmt.edu/tcc/help/pubs/t ... metry.html

Also: RTFM.

Gruß