Mit Button Labels erzeugen und löschen!

Fragen zu Tkinter.
Antworten
jova90
User
Beiträge: 7
Registriert: Mittwoch 12. Februar 2014, 23:03

Hallo zusammen,

ich habe ein programm geschrieben in dem per druck auf einen Button mehrere Label erzeugt werden.

Da diese Label allerdings durch eine Funktion erstellt wurden und nicht manuell angelegt sind weiß ich nicht wie ich auf sie zugreifen
kann um Sie zu löschen.

weis jemand abhilfe?

Ist es möglich Sie einfach zu überschreiben oder ist das müll?

Grüße
BlackJack

@jova90: Du musst Dir die Objekte auf die Du später noch mal zugreifen möchtest/musst halt irgendwo merken. Zum Beispiel in einer Liste. Und die als Attribut auf dem Objekt speichern auf der die Methode definiert ist in der sie erstellt wurden.
jova90
User
Beiträge: 7
Registriert: Mittwoch 12. Februar 2014, 23:03

Danke für die schnelle Antwort.

Wenn ich dich richtig verstanden habe soll ich jedes Label als eigenes Objekt anlegen?

hast du da vielleicht ein kleines code-beispiel? bin mit dieser sache etwas überfragt.
BlackJack

@jova90: Jedes `Label`-Exemplar *ist* ein eigenes Objekt, anders geht es gar nicht. Wie sieht denn die Klasse aus die Du da bisher geschrieben hast? Hast Du überhaupt eine/mehrere Klasse(n) für die GUI(-Elemente)?
jova90
User
Beiträge: 7
Registriert: Mittwoch 12. Februar 2014, 23:03

eben nicht.

Da ich aus der C-Welt komme ist mein Verständnis für die Objektorientierte Programmierung äußerst beschränkt. :K

Der Plan ist eine Tabelle zu erstellen in der ich eben auch Zeilen hinzufügen und auch wieder löschen kann.
Vielleicht geh ich auch vollkomen falsch an die Sache ran. Aber wie geb ich den einem Objekt(also dem Label) eine eindeutige Kennung wenn ich es erst zur Laufzeit erzeuge?
BlackJack

@jova90: Also erst einmal ist ein Objekt selbst eindeutig. Ansonsten musst Du halt überlegen in was für einer Datenstruktur Du die `Label`-Objekte speichern möchtest. Das hängt davon ab wie darauf zugegriffen werden soll. Bei einer Tabelle könnte ich mir zum Beispiel eine Liste mit einer Liste mit Labelobjekten für jede Zeile vorstellen.

So wild ist OOP gar nicht. Wenn Du aus der C-Ecke kommst, dann kennst Du ja Strukturen (``struct``). So eine Klasse ist im Grunde grundsätzlich erst einmal eine Struktur wo die Funktionen die auf dieser Struktur operieren mit den Daten zusammengefasst werden. Eine Methode bekommt die Struktur immer als erstes Argument übergeben.

Man kommt in Python spätestens bei GUIs nicht um OOP herum. IMHO.
Antworten