komplexeres problem

Fragen zu Tkinter.
Antworten
kosche

Mittwoch 27. November 2002, 11:20

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.
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Mittwoch 27. November 2002, 13:04

zeig mal nen Quelltext, ohne den kann ich mich nicht einarbeiten.
kosche

Mittwoch 27. November 2002, 14:19

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
kosche

Mittwoch 27. November 2002, 16:32

hallo leute,
ich habe mein problem gelöst. also zerbrecht euch nicht weiter den kopf.

danke
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

Mittwoch 27. November 2002, 21:14

Darf man fragen wie deine Lösung aussieht? Lass doch mal andere dran teilhaben.

Hans
kosche

Donnerstag 28. November 2002, 12:38

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
Antworten