Argument >width< in class tk.frame übergeben

Fragen zu Tkinter.
Antworten
NinoBaumann
User
Beiträge: 72
Registriert: Samstag 25. April 2020, 19:03

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)
Benutzeravatar
__blackjack__
User
Beiträge: 13117
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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?
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
NinoBaumann
User
Beiträge: 72
Registriert: Samstag 25. April 2020, 19:03

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
Benutzeravatar
sparrow
User
Beiträge: 4195
Registriert: Freitag 17. April 2009, 10:28

@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.
Benutzeravatar
__blackjack__
User
Beiträge: 13117
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten