下面的代码让我打印出组合框中选定的值,但我需要打印(获取)列表中选定项目的索引号。我怎样才能做到这一点?
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()
在组合框上使用
current
方法。
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()
bind()
与 current()
结合起来,就可以。
这是一个快速演示:
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()