Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.5:使用TKInter下拉菜单中的选项分配多个变量_Python_Tkinter_Menu_Dropdown - Fatal编程技术网

Python 3.5:使用TKInter下拉菜单中的选项分配多个变量

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():

感谢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():
        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