如何从多个tkinter选项菜单中获取值



大家好!我需要创建一个窗口与5个不同的下拉菜单,我需要保存5给出的答案。我设法创建了5个不同的下拉菜单的窗口。但是,当我运行代码时,只保存最后的答案。我如何检索所有5个选项?由于

# Import the tkinter module
import tkinter

# Create the default window
root = tkinter.Tk()
root.title("Thruster types")
#root.geometry('700x500')

# Create the list of options
options_list = 'Tunnel', 'Azimuth', 'Pod', 'Shaft Line', 'Cycloid'


#Create an empty list that I will fill with my inputs
Thruster=[None]*5
# Create the optionmenu widget and passing 
# the options_list and value_inside to it.
for i in range (0, 5, 1):
# Variable to keep track of the option selected in OptionMenu
value_inside = tkinter.StringVar(root)
# Set the default value of the variable
value_inside.set("Thruster"+str(i+1))   
question_menu = tkinter.OptionMenu(root, value_inside, *options_list)
question_menu.pack()

def print_answers():
print(value_inside.get()) #Placing the inputs into the list Thruster
return None


# Submit button
# Whenever we click the submit button, our submitted
# option is printed ---Testing purpose
submit_button = tkinter.Button(root, text='Submit', command=print_answers)
submit_button.pack()
root.mainloop()
print(Thruster)

创建一个列表来存储你在循环中创建的每个OptionMenu的StringVar。然后,对于列表中的每个值,调用.get()来获取该值。

:

# Import the tkinter module
import tkinter

# Create the default window
root = tkinter.Tk()
root.title("Thruster types")
#root.geometry('700x500')

# Create the list of options
options_list = 'Tunnel', 'Azimuth', 'Pod', 'Shaft Line', 'Cycloid'


#Create an empty list that I will fill with my inputs
Thruster=[None]*5
# list of all StringVars for each OptionMenu
values = []
# Create the optionmenu widget and passing 
# the options_list and value_inside to it.
for i in range (0, 5, 1):
# Variable to keep track of the option selected in OptionMenu
value_inside = tkinter.StringVar(root)
# Set the default value of the variable
value_inside.set("Thruster"+str(i+1))   
question_menu = tkinter.OptionMenu(root, value_inside, *options_list)
question_menu.pack()
values.append(value_inside)

def print_answers():
for val in values:
print(val.get()) #Placing the inputs into the list Thruster
return None


# Submit button
# Whenever we click the submit button, our submitted
# option is printed ---Testing purpose
submit_button = tkinter.Button(root, text='Submit', command=print_answers)
submit_button.pack()
root.mainloop()

最新更新