当我更改一个菜单的值时,为什么我的所有tkinter选项都会更新?

时间:2017-06-07 22:15:49

标签: python tkinter widget pydev optionmenu

当我更改1选项菜单的值时,我的所有选项菜单小部件都在一起更新。

这是我用来制作所有菜单(self.var初始化为self.var = StringVar(master))的原因:

def makeMenu(self, name, items, r, c):

    self.var.set(items[0])
    name = OptionMenu(self, self.var, *items)
    name.grid(row = r, column = c , padx = self.pad_x, pady = self.pad_y)
    name.config( width = self.menu_width)
    name.menu = Menu(name, tearoff = self.tear_off)

    for i in range(len(items)):
        name.menu.add_command(label = items[i])  

    return name 

当我尝试制作新菜单并更改项目时,所有其他菜单'项目也会更改为新项目。

即。当我这样做时:

self.layout_menu = self.makeMenu("layout_menu", self.layout_sections, 
                                 self.layout_menu_row, self.layout_menu_col)

1 个答案:

答案 0 :(得分:0)

我真的认为您不需要StringVar(master),只需要StringVar()