Hallo und guten Tag,
ich befasse mich seit zwei Tagen mit Python und der GUI-Programmierung mit tk / ttk.
In meinem Hauptprogramm habe ich ein Label-Widget erstellt.
Die Aktualisierung diese Widgets habe ich in eine Funktion ausgelagert die in einer Datei "Functions.py" steht.
Diese importiere ich in mein Hauptprogramm.
Wenn ich jetzt die Aktualisierung des Widgets anstoße bekomme ich die Meldung, dass das Label-Widget nicht definiert ist.
Macht soweit Sinn, da es ja im Hauptprogramm angelegt ist.
Meine Frage: Kann ich Widgets, die im Hauptprogramm angelegt werden in einer ausgelagerten Funktion bekannt machen?
Vielen Dank schon mal
Winki
Widget aus Hauptprogramm in ausgelagertem Programm bekannt machen
beim aufrufen der ausgelagerten Funktion das Widget mit übergeben? Sollte natürlich im Ablauf erst nach dem Erzeugen des Widgets passieren.
_______________________________________________________________________________
https://www.python-kurs.eu/index.php
https://learnxinyminutes.com/docs/python/ https://learnxinyminutes.com/docs/de-de/python-de/
https://quickref.me/python https://docs.python-guide.org/
Die Lösung bei GUIs heißt Klassen. Alles, was zu einer logischen GUI-Einheit gehört, sollte auch am selben Ort sein. Um auf Elemente aus Funktionen zugreifen zu können, benutzt man eine Klasse, die Funktionen sind Methoden und alle Widgets an passende Attribute gebunden.
Globale Funktionen darf man auf keinen Fall verwenden, und ein Programm in mehrere Module aufzuspalten macht erst dann Sinn, wenn man wirklich unabhängige Funktionalitäten hat. Dann kann man auch das Modul sinnvoll benennen, nämlich mit einem Namen, der diese Gesamtfunktionalität beschreibt. Wenn man ein Modul "Functions.py" nennt, dann deutet das stark darauf hin, dass die Funktionen, die da drin stehen, nichts miteinander zu tun haben, also kein wirkliches Modul bilden.
Module schreibt man wie Variablennamen und Funktionen auf, immer komplett klein.
Globale Funktionen darf man auf keinen Fall verwenden, und ein Programm in mehrere Module aufzuspalten macht erst dann Sinn, wenn man wirklich unabhängige Funktionalitäten hat. Dann kann man auch das Modul sinnvoll benennen, nämlich mit einem Namen, der diese Gesamtfunktionalität beschreibt. Wenn man ein Modul "Functions.py" nennt, dann deutet das stark darauf hin, dass die Funktionen, die da drin stehen, nichts miteinander zu tun haben, also kein wirkliches Modul bilden.
Module schreibt man wie Variablennamen und Funktionen auf, immer komplett klein.