Python + TK -- Widget Namen in Schleife iterieren
lima-city → Forum → Programmiersprachen → Python
aktuelle konfiguration
all
automatisch erzeugten datei
button
datum
ermitteln
funktion
inhalt
label
laufzeit
liste
nebenstehenden button
numerierung
rufen
schleife
stehenden code
text
url
zuordnung
zwischenablage
-
Hi @ all,
Ich schreibe gerade an einem Python Script was den Inhalt einer URL ausliest und mir Zeilenweise ausgibt.
Dazu öffne ich die URL und Schreibe jede Zeile in eine Liste und iteriere dann in einer Schleife über diese Liste und benutze jedes Listenelement als Text für ein TK Label Widget.
Neben jedem Label zeige ich noch einen Button an, mit diesem Button möchte ich eine Funktion (momentan im unten stehenden Code noch nicht vorhanden aber auch fürs Problem irrelevant) auslösen die etwas mit dem Text des Labelwidgets anstellen soll.
Ich kann über widgetname.config() sehr gut die aktuelle Konfiguration (und damit auch den Text) eines per Namen definierten Widgets ermitteln, allerdings heißen meine Widgets ja alle gleich und meine Buttons genauso und ich will aber das jeweils der 1. Button den inhalt des ersten Labels bearbeitet, der 2. Button der des 2. Labels usw.
Da die Daten aus einer automatisch erzeugten Datei stammen weiß ich nicht wie viele Elemente zur Laufzeit in der Datei sind, ich kann das also nicht einfach hart codieren (und selbst wenn wüsste ich nicht wie ich dafür sorgen soll Button 1 die Funktion mit dem Text von Label 1 aufruft (Parameterübergaben sind nämlich bei Aufrufen von TK-Widgets nicht möglich))
Hintergrund:
Die aufzurufende Funktion soll den Text des Label Widgets beim Klick auf den nebenstehenden Button in die Zwischenablage kopieren (wie das geht weiß ich) aber so wird vieleicht klar warum ich eine Zuordnung von Label und Button benötige.
Die Fragen sind also:
Wie sorge ich für eindeutige Widget Namen in der Schleife ? Oder kann ich ev. über Objektreferenzen auf die einzelnen (gleich heißenden Widgets zugreifen) ?
Wie rufe ich eine Funktion von einem Button aus mit unterschiedlichen Parametern auf bzw. wie definiere ich dynamisch eine Funktion mit den benötigten Daten ?
Den Code findet Ihr unter: http://www.pastebin.org/618689
Einen Work Arround habe ich bereits selbst, davon also bitte absehen. Ich möchte es wie geschildert oder gar nicht. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ich würde einfach eine Liste der schon verwendeten Bezeichnern anlegen und jedes mal überprüfen ob der Bezeichner schon darin ist. Wenn nicht kannst du ihn verwenden, wenn doch, musst du eine Numerierung anfügen oder so.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage