在Tkinter的Optionmenu小部件相同的值的指数(Index of same values

2019-10-21 13:23发布

我试图访问相同的值的指数optionmenu部件。 在下面的代码,从列表中字母“b”无论我选择哪两个“B”字返回指数1。 我需要根据列表中即从optionmenu部件选择第一个“B”应该返回指数1,而第二个“B”应该返回指数2.请告诉我该怎么做自己的索引位置来区分这两个“B”字。 提前致谢。

from Tkinter import *

class GUI(Frame):

    def __init__(self):
        Frame.__init__(self)
        self.master.title("New window")
        self.master.geometry("300x200")
        self.grid()

        self.list1 = ["a", "b", "b"]

        self.var = StringVar()
        self.var.set("")
        self.entry = Entry(self, textvariable=self.var)
        self.entry.grid(row=0, column=0)
        self.optionMenu = OptionMenu(self, self.var, *self.list1)
        self.optionMenu.grid(row=0, column=1)

        self.button = Button(self, text="Print", command=self.print_fun)
        self.button.grid(row=0, column=2)

    def print_fun(self):
        print self.optionMenu["menu"].index(self.var.get())

obj = GUI()

obj.mainloop()

Answer 1:

这是选项菜单没有如何设计工作。 你必须创建一个自定义选项菜单。 选项菜单没有什么特别的,它只是一个按钮和一个菜单,一对夫妇的功能,给它,它具有的行为。

从实用性的角度来看,这是一个非常糟糕的设计,因为用户无法知道第一个“B”的选择,第二个“B”的选择之间的差异的方法。 我希望有选择不映射到“停用炸弹”,另一个是“引爆炸弹”。



文章来源: Index of same values in Tkinter Optionmenu widget