无论如何,我一直在搜索一个 tkinter 函数,可以询问用户多项选择问题,最接近的我找到的是 messagebox.asknoyes,但它只提供 2 种选择,而且我无法编辑选择,因为它们是固定的(是或否),是否有一个 tkinter 函数可以做到我想要的?请注意:这不是 Taking input from the user in Tkinter 的重复问题,因为该问题询问如何从用户那里获取输入,因此用户可以提交任何他们想要的输入,而我想给用户一些预定义的选择来选择一个。
from tkinter import Tk, Label, Button, Radiobutton, IntVar
# ^ Use capital T here if using Python 2.7
def ask_multiple_choice_question(prompt, options):
root = Tk()
if prompt:
Label(root, text=prompt).pack()
v = IntVar()
for i, option in enumerate(options):
Radiobutton(root, text=option, variable=v, value=i).pack(anchor="w")
Button(text="Submit", command=root.destroy).pack()
root.mainloop()
if v.get() == 0: return None
return options[v.get()]
result = ask_multiple_choice_question(
"What is your favorite color?",
[
"Blue!",
"No -- Yellow!",
"Aaaaargh!"
]
)
print("User's response was: {}".format(repr(result)))