Fenster auf dem Bildschirm

Fragen zu Tkinter.
Antworten
Pascal
User
Beiträge: 271
Registriert: Samstag 4. April 2009, 22:18

mal wieder eine Frage von mir:

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

Danke im Voraus
problembär

Ja,

Code: Alles auswählen

pydoc Tkinter.Tk.geometry
Gruß
Pascal
User
Beiträge: 271
Registriert: Samstag 4. April 2009, 22:18

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?
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

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:
Take it easy Mates!
Benutzeravatar
hendrikS
User
Beiträge: 420
Registriert: Mittwoch 24. Dezember 2008, 22:44
Wohnort: Leipzig

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.
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

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:
Take it easy Mates!
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ß
Antworten