Wie macht ihr das so???

Fragen zu Tkinter.
Antworten
anonym109

Guten Tag, ich habe gerade mal mit programmieren lernen angefangen,
ich habe mir gerade ein Tutorial für GUI`s angesehen.

Aufgeführt werden hier:

Code: Alles auswählen

lable1 = tk.Label()
lable3 = ttk.Label()
lable3['image'] = photo
lable3.configure(')
Im Video wird davon gesprochen Funktion und Aussehen der GUI voneinander zu trennen man müsse aber nicht unbedingt tk und ttk verwenden,
hier meine Fragen dazu.

Also Tk und TTk oder nur eines davon?

Und wie ihr die 3 Möglichkeiten benutzt

Was im Objekt?
Was in configure?
Was in Schlüssel[ ]?

Es geht mir bei der Frage einfach um das Verständnis wie das ganze korrekt aufzubauen wäre oder wie es im allgemeinen Umfeld unter Programmierern üblich wäre.


Vielen Dank
Benutzeravatar
__blackjack__
User
Beiträge: 13100
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Sculprica: `tk` und `ttk` wählt man danach welches von beiden man haben will. Das ist ja nicht das gleiche, sonst wäre es sinnlos, dass es beides gibt.

Was man nicht machen sollte, völlig unabhängig vom Thema GUI, ist Namen zu nummerieren.

Optionen setzen/abfragen mit […]-Zugriff oder `configure()`-Methode ist für einzelne Werte gleichwertig. Mit `configure()` kann man mehrere Optionen auf einmal setzen, was mit […]-Zugriff nicht geht.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
anonym109

Danke erstmal und ja den Code habe ich jetzt mal übernommen von der Übung wobei die Nummerierung nicht etwas zum angewöhnen ist ,
ist ja später zu unübersichtlich zwecks Änderungen/Fehlersuche oder Erweiterung.

die Unterschiedlichen Strukturen habe ich nun gefunden und deren Funktion zumindest einmal gesehen auch wenn ich noch nicht alles davon verstehe.

Gibt es einige Beispiele oder Tutorials die zeigen wie man die GUI mit dem Programmablauf verknüpft?

Ich würde gerne eine Art Registrier-/Anmeldeprogramm schreiben als Übung um die zusammenhänge besser zu verstehen.

Oder gibt es sowas als Übung?

Leider sind in vielen Videos oft die Sätze "Warum das so ist musst du erstmal nicht verstehen"/"das ist einfach so" zu hören was manchmal etwas unglücklich ist um das Verhalten des Programms nachzuvollziehen und warum manche Änderungen nicht so ausgeführt werden wie nach dem Wissensstand erwartet.

Ich hoffe ihr könnt mir da ein wenig weiter helfen.
Benutzeravatar
grubenfox
User
Beiträge: 430
Registriert: Freitag 2. Dezember 2022, 15:49

viewtopic.php?t=56562

wobei es da sicherlich bessere Beispiele gibt, aber innerhalb von 10 Tagen schon das zweite Mal dieses Thema hier im Forum.... :)
Gibt es einige Beispiele oder Tutorials die zeigen wie man die GUI mit dem Programmablauf verknüpft?
Wobei... die GUI ist der Programmablauf... bei der ereignissorientierten Programmierung. Also die Ereignisse, die durch Mausklick usw. auf irgendwelche GUI-Elemente erzeugt werden, lösen halt die verschiedenen Routinen aus (wobei die Ereignisse in mehr oder weniger beliebiger Anzahl und Reihenfolge auftreten können und damit vorgeben in welcher Reihenfolge und Häufigkeit die Ereignishandler durchlaufen werden) und insgesamt sollte das ganz dann auch irgendetwas sinnvolles ergeben.

Also der interne Programmablauf bei der Ereignisorientierten Programmierung besteht aus einer Schleife, die auf das nächste Ereignis wartet, dann den passenden Ereignishandler aufruft und dann wieder beim Warten auf das nächste Ereignis anfängt.

Ein Ereignishandler der wohl immer vorhanden ist, ist einer der irgendwie (vielleicht mittels

Code: Alles auswählen

sys.exit()
) die Schleife und das Programm beendet.
Benutzeravatar
grubenfox
User
Beiträge: 430
Registriert: Freitag 2. Dezember 2022, 15:49

Aha, ich habe gerade gesehen das es bei Tk wohl eine 'destroy'-Methode gibt mittels der das Programm beendet wird https://docs.python.org/3/library/tkint ... ld-program
Letzte Zeile im Beispiel ist der Aufruf der Schleife die sich um die Ereignisse kümmert, und in der vorletzten Zeile wird ein Button erzeugt, der bei Klick zum Programmende führt.
Benutzeravatar
__blackjack__
User
Beiträge: 13100
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Naja, `destroy()` bricht das Programm indirekt ab wenn man das `Tk`-Objekt zerstört. Eigentlich sollte man die `quit()`-Methode verwenden um die `mainloop()` zu beenden.

`sys.exit()` ist noch brachialer, weil man damit dann keinen Code mehr nach dem `mainloop()`-Aufruf stehen haben kann (ausser in einem ``finally``-Zweig).
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Benutzeravatar
Kebap
User
Beiträge: 687
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

Sculprica hat geschrieben: Mittwoch 15. März 2023, 05:04 Guten Tag, ich habe gerade mal mit programmieren lernen angefangen,
ich habe mir gerade ein Tutorial für GUI`s angesehen.
Hallo Sculprica, willkommen an Bord!

Ich würde davon abraten, ganz am Anfang schon eine GUI programmieren zu wollen.
Dafür braucht man einige Grundlagen, die man an leichteren Aufgaben üben kann und ausführlich sollte.
Vor allem, wenn man nicht nur die Sprache Python, sondern die Vorgensweise beim Programmieren allgemein lernen muss. :mrgreen:
Sculprica hat geschrieben: Donnerstag 16. März 2023, 13:46 Ich würde gerne eine Art Registrier-/Anmeldeprogramm schreiben als Übung um die zusammenhänge besser zu verstehen.
Das kann man ja auch erstmal rein auf Text basieren und in der Eingabezeile stattfinden lassen.
Bonuspunkte, wenn das dann so programmiert wird, dass man später eine GUI drüber stülpen kann.
Vielleicht kommen aber auch erstmal kleinere Fragen auf zu Schleifen und Fallunterscheidungen, usw.
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
Antworten