Seite 1 von 1

Combobox Auswahl -> Listbox Änderung

Verfasst: Freitag 24. Januar 2020, 11:55
von Count
Schönen guten Tag,

es funktioniert nicht so wie ich das möchte.

Will in einer Combobox etwas auswählen und dann sollen sich die Einträge in der Listbox ändern.
Danke im voraus und schon mal schönes Wochenende.

wie ich es mir gedacht habe und nicht funktioniert:
from tkinter import *
from tkinter.ttk import Combobox

def callback(mcb):
if maincombo.get() == 'Test1':
listboxName.insert('end','test Test1')
if maincombo.get() == 'Test2':
listboxName.insert('end','test Test2')
if maincombo.get() == 'Test3':
listboxName.insert('end','test Test3')

main = Tk()

maincombo=Combobox(main, state='readonly',font='Helvetica 9 bold', values=['Test1','Test2','Test3'])
maincombo.pack()
maincombo.current(0)

listboxName = Listbox(main, selectmode='browse')
listboxName.pack()
listboxName= StringVar()
listboxName.trace('a',lambda name, index, modem, mcb=listboxName: callback(mcb))

main.mainloop()

Re: Combobox Auswahl -> Listbox Änderung

Verfasst: Freitag 24. Januar 2020, 13:07
von Sirius3
Was hat die Listbox `listboxName` mit der StringVar-Instanz `listboxName` zu tun? Zweiteres wird nirgends sinnvoll benutzt. Du willst wahrscheinlich auf Änderungen in ComboBox reagieren?

Re: Combobox Auswahl -> Listbox Änderung

Verfasst: Freitag 24. Januar 2020, 13:35
von Count
ohne StringVar wollte es den callback nicht nehmen und das hatte in einem anderem Zusammenhang schon mal wunderbar geklappt^^

für bessere Vorschläge und vor allem funktionierende bin ich dankbar

Re: Combobox Auswahl -> Listbox Änderung

Verfasst: Freitag 24. Januar 2020, 14:56
von __blackjack__
@Count: Ohne `StringVar` wollte was welchen callback nicht nehmen und wie genau äussert(e) sich das? Und das erklärt auch nicht warum `listboxName` nacheinander an zwei völlig unterschiedliche Datentypen gebunden wird. Die `trace()`-Methode ist zudem veraltet und sollte nicht mehr verwendet werden.

Re: Combobox Auswahl -> Listbox Änderung

Verfasst: Mittwoch 5. Februar 2020, 10:30
von Count
sry, stand total auf dem Schlauch^^
hast natürlich Recht und hab den Fehler ausgemerzt und funktioniert jetzt wie es soll