Python 3.5:使用TKInter下拉菜单中的选项分配多个变量
感谢furas,我为ListBox提供了以下代码:Python 3.5:使用TKInter下拉菜单中的选项分配多个变量,python,tkinter,menu,dropdown,Python,Tkinter,Menu,Dropdown,感谢furas,我为ListBox提供了以下代码: import tkinter as tk def on_button(): # for i, var in enumerate(o_vars): # print('OptionMenu {}: {}'.format(i, var.get())) # print() print('ListBox:', l.curselection()) for i in l.curselection():
import tkinter as tk
def on_button():
# for i, var in enumerate(o_vars):
# print('OptionMenu {}: {}'.format(i, var.get()))
# print()
print('ListBox:', l.curselection())
for i in l.curselection():
print('option:', OPTIONS[i])
print()
# --- main ---
OPTIONS = ["Script 1","Script 2","Script 3","Script 4","Script 5"]
root = tk.Tk()
# --- Listbox ---
tk.Label(root, text='Listbox', bg='#aaa').pack(fill='x')
l = tk.Listbox(root, selectmode='multiple')
l.pack()
l.insert('end', *OPTIONS)
# --- others ---
b = tk.Button(root, text='OK', command=on_button)
b.pack(fill='x')
root.mainloop()
当我运行它时,它会给我如下所示的弹出图像。然后我做出选择
这就是我被困的地方。。。我想说如果用户选择了Script2打印“Script2”。如果用户选择了脚本5,则打印“脚本5”
下面是我尝试过但出错的代码:
if l.curselection() == 'Script1':
print ('test')
if l.curselection() == 'Script2':
print ('test2')
Tcl错误:无效的命令名。92911768
另外,如何在“确定”下面添加“退出”按钮
*非常感谢任何帮助选项关闭后的菜单下拉菜单只能显示一个选项-因此无法选择更多选项
因此,您可以使用以下方法之一:
许多的
它可以选择许多元素
许多的
只有使用多个选项菜单,才能选择执行脚本的顺序
示例在一个窗口中显示所有方法
结果:
OptionMenu 1: Script 1
OptionMenu 2: Script 3
OptionMenu 3: Script 5
ListBox: (0, 2, 4)
option: Script 1
option: Script 3
option: Script 5
ChecboxBox:
option: Script 1
option: Script 3
option: Script 5
GitHub:当您关闭下拉菜单时,此小部件只能显示一个选项-这就是为什么您只能选择一个选项。如果您必须同时选择更多选项,请使用。顺便说一句:我们对类使用CamelCase名称-即SimpleFormApp以使代码更具可读性-永远不要更改问题文本!!!-在下面添加新信息。现在你的问题对其他用户来说是无用的。如果你有新问题,那么就创建新问题!!!解决问题的老方法-使用print查看变量中的内容以及执行的代码部分。所以使用printl.com来看看你得到了什么。谢谢!不过,我对下面的步骤有点困惑。假设我想使用下拉菜单的列表框选项,然后选择脚本1和脚本2。。。。如何编写以下代码:如果选择的选项是脚本1打印脚本1,如果选择的选项是脚本2打印脚本2,则可以使用列表框而不是选项菜单。l、 curselection在列表框中为您提供所选行的数量,您必须使用它从选项中获取文本-您可以在_按钮上的函数中看到它,并在结果中显示为列表框:0、2、4I抱歉,我对tkinter和类非常陌生。。。我不太明白你上面的意思,用列表框代替选项菜单。单击此列表框上的元素-可以选择许多元素。然后单击按钮以在_按钮上运行函数。在函数内部,您可以使用curselection获取列表框中所选元素的索引-对于图像上的选择,它给出值0、2、4。然后您可以使用此索引从列表选项中获取文本-选项[0]给出文本脚本1,选项[2]给出文本脚本3,选项[4]给出文本脚本5。
OptionMenu 1: Script 1
OptionMenu 2: Script 3
OptionMenu 3: Script 5
ListBox: (0, 2, 4)
option: Script 1
option: Script 3
option: Script 5
ChecboxBox:
option: Script 1
option: Script 3
option: Script 5