Tkinter: Fensterhöhe setzen/begrenzen
Verfasst: Sonntag 8. Januar 2017, 15:24
Hallo zusammen,
ich versuche, die Höhe eines Tkinter-Fensters auf die sichtbare Höhe des Bildschirms zu begrenzen und arbeite mit Python 3.4.4 unter Windows 7.
Zunächstmal scheint Tkinter die Windows-Startleiste nicht zu berücksichtigen, d.h. die Fensterhöhe, die beim Erzeugen automatisch gesetzt wird, wird auf die gesamte Bildschirmhöhe begrenzt, und das untere Ende des Fensters verschwindet hinter der Startleiste.
Ich habe nun die Fensterhöhe ermittelt, die ich tatsächlich haben will, und sie mit maxsize als obere Grenze gesetzt.
Beispielcode:
Dieses Skript erzeugt aber wieder ein Fenster, das hinter der Startleiste verschwindet. Wenn ich die Höhe manuell ändere, greift anschließend die Begrenzung so, wie ich es haben will. Nur die automatisch gesetzte Höhe am Anfang ist zu hoch.
Das manuelle Setzten der Höhe mit root.configure (vorletzte Zeile) ändert daran auch nichts.
Kann mir irgendjemand sagen, wo das Problem liegt?
ich versuche, die Höhe eines Tkinter-Fensters auf die sichtbare Höhe des Bildschirms zu begrenzen und arbeite mit Python 3.4.4 unter Windows 7.
Zunächstmal scheint Tkinter die Windows-Startleiste nicht zu berücksichtigen, d.h. die Fensterhöhe, die beim Erzeugen automatisch gesetzt wird, wird auf die gesamte Bildschirmhöhe begrenzt, und das untere Ende des Fensters verschwindet hinter der Startleiste.
Ich habe nun die Fensterhöhe ermittelt, die ich tatsächlich haben will, und sie mit maxsize als obere Grenze gesetzt.
Beispielcode:
Code: Alles auswählen
import tkinter as tk
root = tk.Tk()
maxheight = root.winfo_screenheight() - 78
root.maxsize(height=maxheight)
# Fenster mit Dummy-Inhalten füllen
for ii in range(50):
tk.Label(root, text="Label {0:d}".format(ii)).pack()
root.configure(height=maxheight)
root.mainloop()
Das manuelle Setzten der Höhe mit root.configure (vorletzte Zeile) ändert daran auch nichts.
Kann mir irgendjemand sagen, wo das Problem liegt?