从多个 tkinter 选项菜单中获取值
Get values from multiple tkinter option menus
我需要遍历在 for 循环中创建的选项菜单,并在按下按钮时将它们的值存储到列表中。
我有一个 for 循环,它生成动态数量的选项菜单(两列,多行)。这是我的 GUI 以供参考:imgur link
我将选项菜单标识和字符串变量标识存储在列表中:
self.obox_Type_idx
和 self.obox_Role_idx
这是我的代码:
for i in range(0,num_vars):
self.lbl_VarName = Label(self.frm_widgets, text=X_columns[i], anchor='w')
self.lbl_VarName.grid(row=i, column=0, sticky='news', padx=(0,20))
typeopt = StringVar()
obox_Type = OptionMenu(self.frm_widgets, typeopt, *self.obox_Type_input)
obox_Type.config(width=15)
obox_Type.grid(row=i, column=1, sticky='news', padx=(60,0))
typeopt.set("numerical") #default value
self.obox_Type_idx.append((obox_Type, typeopt))
roleopt = StringVar()
obox_Role = OptionMenu(self.frm_widgets, roleopt, *self.obox_Role_input)
obox_Role.config(width=15)
obox_Role.grid(row=i, column=2, sticky='news')
roleopt.set("feature") #default value
self.obox_Role_idx.append((obox_Role, roleopt))
这是 self.obox_Type_idx
中的条目示例:
(<tkinter.OptionMenu object .!frame.!canvas.!frame.!optionmenu2>, <tkinter.StringVar object at 0x09835870>)
所以我的目标是遍历“类型”列并存储所有选项菜单选择,以便在按下另一个按钮时列出。其自身列表中的 Role 列也是如此。我可以向选项菜单添加命令以使其打印所选值,但我需要能够遍历不同的菜单并获取它们的特定值。
你所要做的就是遍历[=11=]并使用StringVar
的get
方法来获取选项菜单的当前选择:
def on_press(self):
self.list_Role = [var.get() for menu, var in self.obox_Role_idx]
并创建一个命令为 on_press
的按钮。按下此按钮时,所选角色列表将存储在 self.list_Role
.
中
我需要遍历在 for 循环中创建的选项菜单,并在按下按钮时将它们的值存储到列表中。
我有一个 for 循环,它生成动态数量的选项菜单(两列,多行)。这是我的 GUI 以供参考:imgur link
我将选项菜单标识和字符串变量标识存储在列表中:
self.obox_Type_idx
和 self.obox_Role_idx
这是我的代码:
for i in range(0,num_vars):
self.lbl_VarName = Label(self.frm_widgets, text=X_columns[i], anchor='w')
self.lbl_VarName.grid(row=i, column=0, sticky='news', padx=(0,20))
typeopt = StringVar()
obox_Type = OptionMenu(self.frm_widgets, typeopt, *self.obox_Type_input)
obox_Type.config(width=15)
obox_Type.grid(row=i, column=1, sticky='news', padx=(60,0))
typeopt.set("numerical") #default value
self.obox_Type_idx.append((obox_Type, typeopt))
roleopt = StringVar()
obox_Role = OptionMenu(self.frm_widgets, roleopt, *self.obox_Role_input)
obox_Role.config(width=15)
obox_Role.grid(row=i, column=2, sticky='news')
roleopt.set("feature") #default value
self.obox_Role_idx.append((obox_Role, roleopt))
这是 self.obox_Type_idx
中的条目示例:
(<tkinter.OptionMenu object .!frame.!canvas.!frame.!optionmenu2>, <tkinter.StringVar object at 0x09835870>)
所以我的目标是遍历“类型”列并存储所有选项菜单选择,以便在按下另一个按钮时列出。其自身列表中的 Role 列也是如此。我可以向选项菜单添加命令以使其打印所选值,但我需要能够遍历不同的菜单并获取它们的特定值。
你所要做的就是遍历[=11=]并使用StringVar
的get
方法来获取选项菜单的当前选择:
def on_press(self):
self.list_Role = [var.get() for menu, var in self.obox_Role_idx]
并创建一个命令为 on_press
的按钮。按下此按钮时,所选角色列表将存储在 self.list_Role
.