2017-03-22 15 views
0

次のコードを使用すると、選択した値をコンボボックスから印刷できますが、リスト内の選択したアイテムのインデックス番号を印刷(取得)する必要があります。あなたは私にそのことを教えてもらえますか?選択したオプションのインデックスを取得する方法

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

答えて

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

はい、あなたはcurrent()bind()を組み合わせることができます。ここで

は、迅速なデモです:

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