Die Größe der Tkinter Fenster kann über folgende Methoden gesteuert werden:Wie wird die minimale und maximale Höhe oder Breite eines Frames eingestellt?
.minsize()
.maxsize()
.resizable()
Gibt es gleichwertige Möglichkeiten, um die Größe von Tkinter oder ttk Frames zu kontrollieren?
@Bryan: änderte ich Ihre frame1.pack Code auf die folgenden:
frame1.pack(fill='both', expand=True)
frame1.bind('<Configure>', maxsize)
Und ich diesen Event-Handler hinzugefügt: zu
# attempt to prevent frame from growing past a certain size
def maxsize(event=None):
print frame1.winfo_width()
if frame1.winfo_width() > 200:
print 'frame1 wider than 200 pixels'
frame1.pack_propagate(0)
frame1.config(width=200)
return 'break'
Die oben erkennt Ereignisbehandlungsroutine, die eine Breite des Rahmens ist groß, aber ist nicht in der Lage, die Größenzunahme zu verhindern. Ist das eine Einschränkung von Tkinter oder habe ich deine Erklärung missverstanden?
Ich denke, Sie missverstanden. Meine Erklärung wies darauf hin, dass der Frame eine statische Breite hat und nicht wachsen oder schrumpfen wird, wenn Sie packen, wenn expand auf "False" gesetzt ist und fill auf "None" gesetzt ist. Wenn der Rahmen aufgrund seiner übergeordneten Größe geändert wird, hat das Festlegen von pack_propagate für den Rahmen keine Auswirkungen, Sie müssen ihn für das übergeordnete Element festlegen. pack_propagate legt nur fest, ob der Frame die Größe basierend auf seinem Inhalt ändert, nicht basierend auf seinem übergeordneten Element. –
@Bryan: Vielen Dank für Ihr Follow-up. Ich verstehe jetzt. – Malcolm