Frage

Dies ist der Code, der mir Mühe hat zu geben.

f = Frame(root, width=1000, bg="blue")
f.pack(fill=X, expand=True)

l = Label(f, text="hi", width=10, bg="red", fg="white")
l.pack()

Wenn ich die Zeilen mit dem Etikett auf Kommentar, den Rahmen-Displays mit der richtigen Breite. Allerdings scheint das Label Hinzufügen den Rahmen schrumpfen zu der Etikettengröße nach unten. Gibt es eine Möglichkeit, das zu verhindern?

War es hilfreich?

Lösung

Standardmäßig tk Frames schrumpfen oder wachsen ihre Inhalte passen , das ist, was Sie 99% der Zeit möchten. Der Begriff, der diese Funktion beschreibt, ist „Geometrie Ausbreitung“. Es gibt ein Befehl Geometrie Ausbreitung zu aktivieren oder zu deaktivieren, wenn Verwendung pack (und ein ähnlichen grid).

Da Sie Pack verwenden, die Syntax wäre:

f.pack_propagate(0)

oder vielleicht root.pack_propagate(0), je nachdem, welches Widget (s), die Sie tatsächlich beeinflussen. Da Sie jedoch die Rahmenhöhe nicht angegeben haben, ist es Standardhöhe 1 Pixel ist, so dass Sie immer noch nicht die inneren Widgets sehen. Um die volle Wirkung zu bekommen, was Sie wollen, müssen Sie die enthaltenen Rahmen geben, sowohl eine Breite und eine Höhe.

aber sagen, dass die überwiegende Mehrheit der Zeit sollten Sie lassen tkinter die Größe berechnen. Wenn Sie Geometrie Ausbreitung von Ihrer GUI drehen wird, um Änderungen in der Auflösung nicht gut reagieren, Änderungen in Schriften, etc. tkinter Geometrie Manager (pack, place und grid) sind bemerkenswert stark. Lernen Sie die Vorteile dieser Macht zu übernehmen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top