如何使用tkInter显示一个询问用户多选问题的对话框?

2024-10-01 11:38:17 发布

您现在位置:Python中文网/ 问答频道 /正文

不管怎样,我一直在寻找一个tkinter函数,它可以向用户提出一个多选问题,我找到的最接近的结果是messagebox.asknoyes,但它只提供2个选项,而且我不能编辑这些选项,因为它们是固定的(是或否),是否有一个tkinter函数可以满足我的需要?在

注意:这不是Taking input from the user in Tkinter的重复,因为这个问题询问如何从用户获取输入,因此用户可以提交他们想要的任何输入,而我想给用户一些预定义的选择


Tags: the函数用户infrom编辑inputtkinter
1条回答
网友
1楼 · 发布于 2024-10-01 11:38:17

我认为这不是内置函数。我认为你需要手动创建一个窗口,手动添加单选按钮和标签,等待用户响应,然后手动检查选中了哪个单选按钮。在

幸运的是这很简单,所以我为您做了一个快速的实现。在

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

相关问题 更多 >