Tkinter - 什么是spinbox中所选值的索引?

时间:2016-03-07 18:05:17

标签: python user-interface indexing tkinter

我使用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(),但是这个方法需要一个我不理解的参数。

1 个答案:

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