Following code lets me to print out the selected value from the Combobox, but I need to print(get) the indexnumber of selected item in the list. Can you please let me know how to do that?
import Tkinter
import tkMessageBox
from Tkinter import *
import ttk
from ttk import *
app = Tk()
def OptionCallBack(*args):
print variable.get()
variable = StringVar(app)
variable.set("Select From List")
variable.trace('w', OptionCallBack)
so = ttk.Combobox(app, textvariable=variable)
so.config(values =('Tracing Upstream', 'Tracing Downstream','Find Path'))
so.grid(row=1, column=4, sticky='E', padx=10)
app.mainloop()
Use the current
method on the combobox.
import Tkinter
import tkMessageBox
from Tkinter import *
import ttk
from ttk import *
app = Tk()
def OptionCallBack(*args):
print variable.get()
print so.current()
variable = StringVar(app)
variable.set("Select From List")
variable.trace('w', OptionCallBack)
so = ttk.Combobox(app, textvariable=variable)
so.config(values =('Tracing Upstream', 'Tracing Downstream','Find Path'))
so.grid(row=1, column=4, sticky='E', padx=10)
app.mainloop()
Yes you can if you combine bind()
with current()
.
Here is a quick demo:
import Tkinter
import tkMessageBox
from Tkinter import *
import ttk
from ttk import *
app = Tk()
def display_selected_item_index(event):
global so
print 'index of this item is: {}\n'.format(so.current())
def OptionCallBack(*args):
print variable.get()
variable = StringVar(app)
variable.set("Select From List")
variable.trace('w', OptionCallBack)
so = ttk.Combobox(app, textvariable=variable)
so.config(values =('Tracing Upstream', 'Tracing Downstream','Find Path'))
so.grid(row=1, column=4, sticky='E', padx=10)
so.bind("<<ComboboxSelected>>", display_selected_item_index)
app.mainloop()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With