Seite 1 von 1

Argument >width< in class tk.frame übergeben

Verfasst: Samstag 12. August 2023, 20:58
von NinoBaumann
Hallo,

ich habe eine Klasse erstellst, welches ein Frame darstellst, in welches ich einige Button, Bilder und Labels packen möchte. Auf jedenfall möchte ich gerne die Breite und Höhe des Frame verändern. Ich habe es auf folgende Weise versucht einzufügen. Bringt keinen Fehler aber verändert die Breite auch nicht. Kann mir jemand weiterhelfen?

Code: Alles auswählen

class Mealframe(tk.Frame):
    def __init__(self, master, name, image_path, nutritional_values, hashtag_list):
        tk.Frame.__init__(self, master, highlightbackground="grey", highlightthickness=2, width=300)

Re: Argument >width< in class tk.frame übergeben

Verfasst: Samstag 12. August 2023, 21:30
von __blackjack__
@NinoBaumann: Warum willst Du das tun? Die Grösse eines Frames sollte durch den Inhalt bestimmt werden. Was ist wenn 300 Pixel nicht ausreichen um den Inhalt anzuzeigen?

Re: Argument >width< in class tk.frame übergeben

Verfasst: Sonntag 13. August 2023, 09:14
von NinoBaumann
Hallo blackjack,

hier geht es um ein einheitliches Bild, da diese Frames in einer Übersicht angeordnet werden. Die Größe ist hierbei ausreichend. Kannst Du mir sagen, wie es funktioniert?
Danke

VG
Nino

Re: Argument >width< in class tk.frame übergeben

Verfasst: Sonntag 13. August 2023, 10:06
von sparrow
@NinoBaumann: Dann solltest du die Layout-Mechanismen benutzen. __blackjack__ hat Recht. Woran machst du fest, dass der Inhalt in das Frame passt? Weil es bei dir so aussieht? Das kann aber auf einem anderen System ganz anders aussehen. Deshalb verwendet man die Layout-Systeme.
Wenn du solch harte Angaben verwendest oder gar "place" verwendest um Objekte zu platzieren, ist das wahrscheinlich falsch.

Re: Argument >width< in class tk.frame übergeben

Verfasst: Sonntag 13. August 2023, 11:15
von __blackjack__
@NinoBaumann: Falls einheitliches Bild eine gleiche Spaltengrösse bei mehreren Spalten in einem Grid-Layout meint, dann schau Dir mal `weight` und `uniform` für die Spaltenkonfiguration an: https://www.tcl.tk/man/tcl8.6/TkCmd/grid.html#M8

`uniform` wird in der `tkinter`-Dokumentation leider nicht erwähnt. Es lohnt bei den meisten Anbindungen an GUI-Rahmenwerke oft ein Blick in die Originaldokumentation oder bei Problemen auch nach Lösungen in den entsprechenden Originalprogrammiersprachen zu suchen.