Seite 1 von 1

komplexeres problem

Verfasst: Mittwoch 27. November 2002, 11:20
von kosche
hallo leute,
ich suche nach einer lösung meines problems. folgendes ist mein problem:
ich habe ein fenster. dann habe ich eine liste mit strings. über eine for - schleife lasse ich in diesem fenster labels erzeugen, die die strings aus der liste bekommen. wenn ich jetzt ein label anklicke, soll in einem dafür vorgesehenen feld, dieser string ausgegeben werden. jetzt könntet ihr sagen,: "nimm bind, oder command" das habe ich schon probiert, aber ich scheine es wohl falsch zu machen. ein klein wenig code wäre wahrscheinlich sehr hilfreich.

Verfasst: Mittwoch 27. November 2002, 13:04
von Milan
zeig mal nen Quelltext, ohne den kann ich mich nicht einarbeiten.

quelltext

Verfasst: Mittwoch 27. November 2002, 14:19
von kosche

Code: Alles auswählen

from Tkinter import *

liste = ["A", "B", "C"]
wm = Tk()
for i in range(len(liste)):
	label = Label(wm, text=liste[i])
	label.pack()
entry = Entry(wm)
entry.pack()
wm.mainloop()
also ich klicke auf ein x-beliebiges label und der text des labels soll
dann im entry erscheinen!

mfg

gelöst

Verfasst: Mittwoch 27. November 2002, 16:32
von kosche
hallo leute,
ich habe mein problem gelöst. also zerbrecht euch nicht weiter den kopf.

danke

Verfasst: Mittwoch 27. November 2002, 21:14
von hans
Darf man fragen wie deine Lösung aussieht? Lass doch mal andere dran teilhaben.

Hans

lösung

Verfasst: Donnerstag 28. November 2002, 12:38
von kosche
sorry, daran habe ich nicht gedacht. :lol:

Code: Alles auswählen

label = Label(newW, text=liste[i])
label.bind("<Button-1>", lambda event, x = liste[i] : prn(x))
label.pack()
also wichtig ist hier lambda event, damit bindet man wohl jedes einzeln erzeugte label an den linken mousebutton (Button-1). danach wird das element noch mal an x übergeben und x an die fkt. prn(). mit der habe ich dann, das label an die stelle plaziert, wo ich es haben wollte (place()).

mfg