Seite 1 von 1
mehrspaltige Listbox() ???
Verfasst: Montag 21. November 2005, 12:53
von drabo
wie kann ich eine mehrspaltige listbox mit labeln erstellen?
|name |vorname | <----label
|------------------------|
|dragan |bojovic | <----- ['dragan','bojovic']
|Hans |Tester | <-----['Hans','Tester']
ps: mit Tkinter
Edit (Leonidas): Ins TkInter-Forum verschoben.
Verfasst: Montag 21. November 2005, 21:22
von mawe
Hi!
Ich hab immer mehr den Eindruck, dass es kaum noch eine Frage zu Python gibt, die hier noch nicht gestell wurde
Schau mal
hier und
hier.
Gruß, mawe
Verfasst: Montag 21. November 2005, 21:38
von Leonidas
mawe hat geschrieben:Ich hab immer mehr den Eindruck, dass es kaum noch eine Frage zu Python gibt, die hier noch nicht gestell wurde

Jetzt sind wir nicht mehr die
Dauer-Antworter sondern die
Verwalter des gesammelten Python-Wissens. Klingt gar nicht mal so schlecht

Verfasst: Montag 21. November 2005, 21:52
von mawe
Leonidas hat geschrieben:Verwalter des gesammelten Python-Wissens. Klingt gar nicht mal so schlecht
Ja, ich fühl mich plötzlich so wichtig

Danke
Verfasst: Dienstag 22. November 2005, 10:34
von drabo
in der zwischenzeit habeich es auch gefunden
trotzdem danke an die 'master of the universe'

Verfasst: Dienstag 22. November 2005, 10:50
von drabo
blöde frage aber wie wende ich das Teil den an?
als MultiListbox.py speichern?
mit 'from MultiListbox import *' importieren
und dann???? bitte vervollständigen, bitte, bitte.....
Code: Alles auswählen
from Tkinter import *
from MultiListbox import *
root = Tk()
datensatz1 = ['Hans','Tester']
datensatz2 = ['Dragan','Bojovic']
listbox = MultiListbox(root, (('Vorname', 10), ('Name', 10)))
listbox.pack(expand=YES,fill=BOTH)
for item in datensatz1:
listbox.insert(END,item)
for item in datensatz2:
listbox.insert(END,item)
root.mainloop()
Edit (Leonidas): Code in Python-Tags gesetzt.
Verfasst: Dienstag 22. November 2005, 11:20
von drabo
ich habs

so muss es sein:
Code: Alles auswählen
from Tkinter import *
from MultiListbox import *
root = Tk()
datensatz1 = [('Hans','Tester')]
datensatz2 = [('Dragan','Bojovic')]
listbox = MultiListbox(root, (('Vorname', 10), ('Name', 10)))
listbox.pack(expand=YES,fill=BOTH)
for item in datensatz1:
listbox.insert(END,item)
for item in datensatz2:
listbox.insert(END,item)
root.mainloop()
Edit (Leonidas): Code in Python-Tags gesetzt.
Verfasst: Dienstag 22. November 2005, 11:55
von drabo
Habe doch noch ein Problem ich hoffe das ihr mir helfen könnt
ich habe den folgenden code geschrieben um den wert wieder auszulesen
Code: Alles auswählen
from Tkinter import *
from MultiListbox import *
def anzeigen():
aktiver_name = listbox.get(ACTIVE)
label['text'] = aktiver_name
root = Tk()
datensatz1 = [('Hans','Tester')]
datensatz2 = [('Dragan','Bojovic')]
listbox = MultiListbox(root, (('Vorname', 10), ('Name', 10)))
listbox.pack()
for item in datensatz1:
listbox.insert(END,item)
for item in datensatz2:
listbox.insert(END,item)
label = Label(root, text = '')
label.pack(expand=YES,fill=BOTH)
knopf = Button(root, text = 'Anzeigen', command = anzeigen)
knopf.pack()
root.mainloop()
Wenn ich unten rechts auf 'Bojovic' klicke zeigt er mir folgendes an:
auch die Art irritiert mich ['Hans','Bojovic']
könnte das nicht einfach Dragan Bojovic heissen?
kann mir bitte jemand helfen ??
Edit (Leonidas): Code in Python-Tags gesetzt.
Verfasst: Dienstag 22. November 2005, 12:18
von mawe
Hi!
Naja, es sind 2 Dinge in 2 Listboxen aktiv, d.h. wenn Du nach den aktiven Elementen fragst, bekommst Du eine List mit den Elementen.
Du kannst folgendes machen:
Code: Alles auswählen
def anzeigen():
aktiver_name = listbox.get(ACTIVE)
label['text'] = " ".join(aktiver_name)
Die Datensätze kannst Du auch zusammenfassen:
Code: Alles auswählen
datensatz = [('Hans', 'Tester'), ('Dragan', 'Bojovic')]
for item in datensatz:
listbox.insert(END, item)
Gruß, mawe
Verfasst: Dienstag 22. November 2005, 14:12
von drabo
Code: Alles auswählen
from Tkinter import *
from MultiListbox import *
def anzeigen():
aktiver_name = listbox.get(ACTIVE)
label['text'] = ' '.join(aktiver_name)
root = Tk()
datensatz = [('Hans','Tester'),('Dragan','Bojovic')]
listbox = MultiListbox(root, (('Vorname', 10), ('Name', 10)))
listbox.pack()
for item in datensatz:
listbox.insert(END,item)
label = Label(root, text = '')
label.pack(expand=YES,fill=BOTH)
knopf = Button(root, text = 'Anzeigen', command = anzeigen)
knopf.pack()
root.mainloop()
ich habe deinen code adaptiert, danke. zwei sachen finde ich besser:
1. ich brauche nur einen datensatz
2. durch das ' '.join(aktiver_datensatz) wird der aktive datensatz richtig dargestellt also ohne [' ',' ']
das problem ist aber immer noch das er die daten nicht linienweise ausliest, sondern er stellt sie immer anders dar je nachdem auf welche zelle ich drauf klicke. ich erhalte antworten wie:
Hans Bojovic
Dragan Tester
Dragan Bojovic
etc.
könntest du mir auch dabei behilflich sein???? danke.
Edit (Leonidas): Code in Python-Tags gesetzt.
Verfasst: Dienstag 22. November 2005, 14:57
von mawe
Versuch mal das, so sollte es funktionieren:
Code: Alles auswählen
def anzeigen():
aktiver_name = listbox.get(listbox.curselection())
label['text'] = " ".join(aktiver_name)
Verfasst: Dienstag 22. November 2005, 15:03
von Gast
"Thanks Dr. Green you're the shit" - Cypress Hill
DANKE, DANKE.....
Ich bin neu und kenne nicht alle Befehle
Jetzt gehts