Hi
Ich möchte die Auswahl einer Listbox in ein Entry -Wiget ausgebeb lassen.
Ich weiß bloß nicht wie das geht!
Kann mir bitte jemand ein Beispiel machen
List box
Meine Webseite http://www.develos.de
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
verstehe ich nicht
Meine Webseite http://www.develos.de
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
Hi jtschoch
Hier eine mögliche Lösung:
Gruß wuf 
Hier eine mögliche Lösung:
Code: Alles auswählen
#!/usr/bin/env python
## -*- coding: utf-8 -*-
from functools import partial
import Tkinter as tk
def transfer(listbox, entry_data):
sel_index = listbox.curselection()
data = listbox.get(sel_index)
entry_data.set(data)
listbox.selection_clear(sel_index)
def update(listbox, elements):
listbox.insert("end", *elements)
if __name__ == "__main__":
my_list = ['Element-1', 'Element-2', 'Element-3']
app_win = tk.Tk()
#~~ Listbox
listbox = tk.Listbox(app_win, bg='khaki', bd=1, selectmode="single",
highlightthickness=0)
listbox.pack()
update(listbox, my_list)
#~~ Eingabe
entry_data = tk.StringVar()
entry = tk.Entry(app_win, bg='white', bd=1, highlightthickness=0,
textvariable=entry_data)
entry.pack(pady=5)
#~~Schaltflächen
button_frame = tk.Frame(app_win)
button_frame.pack(pady=5)
cmd_transfer = partial(transfer, listbox, entry_data)
button_pack_info = dict(side='left', padx=5)
button_transfer = tk.Button(button_frame, text="Transfer",
command=cmd_transfer)
button_transfer.pack(button_pack_info)
button_exit = tk.Button(button_frame, text="Exit",
command=app_win.destroy)
button_exit.pack(button_pack_info)
app_win.mainloop()

Take it easy Mates!
Naja, ich meinte das eigentlich ohne Button.
Es soll beim klicken ausgelöst werden!
Es soll beim klicken ausgelöst werden!
Meine Webseite http://www.develos.de
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
Hatte ich dir nicht neulich schon so eine Listbox zum Fraß vorgeworfen: http://www.python-forum.de/viewtopic.ph ... 14#p202314
Hi jtschoch
Hast du dir ein bisschen Ferien gegönnt?
Hier noch eine angepasste Variante des Effbod-Imperiums:
Gruß wuf
Hast du dir ein bisschen Ferien gegönnt?
Super! Dies ist eine Bestätigung, dass du das Skript ausprobiert hast. Es geht aber auch ohne Button. Hier:jtschoch hat geschrieben:Naja, ich meinte das eigentlich ohne Button.
Code: Alles auswählen
#!/usr/bin/env python
## -*- coding: utf-8 -*-
from functools import partial
import Tkinter as tk
def transfer(listbox, entry_data, args):
sel_index = listbox.curselection()
data = listbox.get(sel_index)
entry_data.set(data)
listbox.selection_clear(sel_index)
def update(listbox, elements):
listbox.insert("end", *elements)
if __name__ == "__main__":
my_list = ['Element-1', 'Element-2', 'Element-3']
app_win = tk.Tk()
#~~ Listbox
listbox = tk.Listbox(app_win, bg='khaki', bd=1, selectmode="single",
highlightthickness=0)
listbox.pack()
update(listbox, my_list)
#~~ Eingabe
entry_data = tk.StringVar()
entry = tk.Entry(app_win, bg='white', bd=1, highlightthickness=0,
textvariable=entry_data)
entry.pack(pady=5)
cmd_transfer = partial(transfer, listbox, entry_data)
listbox.bind('<ButtonRelease-1>', cmd_transfer)
#~~Schaltflächen
button_frame = tk.Frame(app_win)
button_frame.pack(pady=5)
button_exit = tk.Button(button_frame, text="Exit",
command=app_win.destroy)
button_exit.pack(side='left', padx=5)
app_win.mainloop()
Code: Alles auswählen
import Tkinter as tk
class Dialog(tk.Frame):
def __init__(self, master):
tk.Frame.__init__(self, master)
self.list = tk.Listbox(self, selectmode='single', )
self.list.pack(fill='both', expand='yes')
self.current = None
self.entry_data = None
self.poll()
def update(self, list_items):
self.list.insert("end", *list_items)
def poll(self):
sel_index = self.list.curselection()
if sel_index != self.current:
self.current = sel_index
if self.entry_data != None:
self.entry_data.set(self.list.get(sel_index))
self.after(250, self.poll)
if __name__ == "__main__":
my_list_items = ['jtschoch-1', 'jtschoch-2', 'jtschoch-3']
app_win = tk.Tk()
dialog = Dialog(app_win)
dialog.pack()
dialog.update(my_list_items)
entry_data = tk.StringVar()
entry = tk.Entry(app_win, bg='white', bd=1, highlightthickness=0,
textvariable=entry_data)
entry.pack(pady=5)
dialog.entry_data = entry_data
app_win.mainloop()
Raubtiere fressen scheinbar auch nicht alles.Xynon1 hat geschrieben:Hatte ich dir nicht neulich schon so eine Listbox zum Fraß vorgeworfen

Gruß wuf

Take it easy Mates!
Dieses *Raubtier* wäre in der Wildnis(Web) längst verhungert so wie es sich seine Beute(Quellcode) besorgt, zum Glück gibt es ja Zoos(Foren). Und dann fängt es auch noch an Futter(fertigen Quellcode - sogar schon vorgekaut) zu ignorierenen? :K
Dieses *Raubtier* kann wohl nur in Gesellschaft ziemlich genuegsamer Wiederkaeuer ueberleben
. Deshalb hier nochmal eine Variante mit dem <<ListboxSelect>> Event. (Ganz, ganz unten auf der entspr. Effbot-Seite)
yipyip

Code: Alles auswählen
import Tkinter as tk
class Gui(object):
def __init__(self):
self.root = tk.Tk()
font = 'Arial', 12, 'bold'
self.list_var = tk.StringVar()
# Use <Shift> and <STRG> to select multiple ranges!
self.listbox = tk.Listbox(self.root, font=font, selectmode=tk.EXTENDED)
self.listbox.pack(fill=tk.BOTH, expand=True)
self.listbox.bind("<Button-1>", self.check)
self.items = []
for i in dir(self.root):
self.listbox.insert(tk.END, i)
self.items.append(i)
self.entry_var = tk.StringVar()
self.entry = tk.Entry(self.root, textvariable=self.entry_var, font=font, width=40)
self.entry.pack(fill=tk.BOTH)
self.listbox.bind('<<ListboxSelect>>', self.check)
def check(self, event):
indices = map(int, self.listbox.curselection())
#print self.listbox.curselection()
self.entry_var.set(' '.join(self.items[i] for i in indices))
def run(self):
self.root.mainloop()
if __name__ == '__main__':
Gui().run()

yipyip
Hallo yipyip
Danke für den goldenen Hinweis betreffs '<<ListboxSelect>>'. Wie du siehst nehme ich es auch nicht so genau mit dem durchlesen der Dokumente.
Muss mich unbedingt verbessern. Somit ergibt sich eine weitere Variante:
Gruß wuf 
Danke für den goldenen Hinweis betreffs '<<ListboxSelect>>'. Wie du siehst nehme ich es auch nicht so genau mit dem durchlesen der Dokumente.

Code: Alles auswählen
import Tkinter as tk
class Dialog(tk.Listbox):
def __init__(self, parent, entry_var):
self.entry_var = entry_var
tk.Listbox.__init__(self, parent, selectmode='single', )
self.bind('<<ListboxSelect>>', self.change)
def update(self, list_items):
self.insert("end", *list_items)
def change(self, event):
self.entry_var.set(self.get(self.curselection()))
if __name__ == "__main__":
list_items = ['jtschoch-1', 'jtschoch-2', 'jtschoch-3']
app_win = tk.Tk()
entry_var = tk.StringVar()
dialog = Dialog(app_win, entry_var)
dialog.pack(fill='both', expand=True)
dialog.update(list_items)
entry = tk.Entry(app_win, bg='white', textvariable=entry_var)
entry.pack(pady=5)
app_win.mainloop()

Take it easy Mates!
Vielen Dank!!!
Jetzt komm ich weiter 


Meine Webseite http://www.develos.de
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
Mit so wenig Informationen wie jetzt ist es nur möglich Puzzelstücke schreiben, vieleicht sagts du uns einfach mal was dein Programm alles können soll, dann schreiben wir es dir auch ganz. 
