当我更改一个菜单的值时,为什么我的所有 tkinter 选项菜单都会更新?
Why are all my tkinter optionmenus being updated when I change the values of one menu?
当我更改 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)
我真的觉得你不需要StringVar(master)
,你只需要StringVar()
当我更改 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)
我真的觉得你不需要StringVar(master)
,你只需要StringVar()