我使用Tkinter Spinbox为项目选择构建了一个类。我想返回所选项目的索引。这可能吗?
from Tkinter import *
class TestSpin():
def __init__(self, i_root, i_friendlist):
self.root = i_root
self.root.friend = Spinbox(self.root, values = i_friendlist)
self.root.friend.pack()
self.root.okbutton = Button(self.root, text='Ok', command = lambda: self.ack())
self.root.okbutton.pack()
def ack(self):
# here I'd like to have the index of selected item in friendlist
print "Index of "+self.root.friend.get()+" is [0 or 1 or 2]:", self.root.friend
# here I'd like to have the index of selected item in friendlist
self.root.destroy()
root = Tk()
list = ['Emma','Sarah','James']
app = TestSpin(root, list)
root.mainloop()
非常感谢您的建议。我试过self.root.friend.index(),但是这个方法需要一个我不理解的参数。
答案 0 :(得分:1)
没有办法直接从小部件中获取值,但它只是一行python代码:
index = i_fiendlist.index(self.root.friend.get())
使用您的代码,您需要保存列表的值:
class TestSpin():
def __init__(self, i_root,i_friendlist):
self._list = i_list
...
def ack(self):
value = self.root.friend.get()
index = self._list.index(value)
print "Index of " + value + " is " + str(index)
self.root.destroy()