如何在Tkinter Combobox中获取选择选项的索引

2024-06-09 18:37:57 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的代码允许我从组合框中打印出选定的值,但我需要打印(获取)列表中选定项的索引号。你能告诉我怎么做吗?

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()

Tags: 代码fromimportapp列表sotkinterdef
2条回答

在组合框上使用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()

是的,如果你把^{}^{}结合在一起,你可以。

下面是一个快速演示:

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()

相关问题 更多 >