【发布时间】:2016-06-10 04:15:52
【问题描述】:
我正在尝试使用 Tkinter 在 Python 中创建一个对话框。目标是有一个带有两个单选按钮和一个“确定”按钮的对话框。单选按钮一选择“默认”选项。单选按钮二选择“用户定义”选项。 “确定”按钮关闭窗口。
问题 1:如何保存单选按钮的值?也就是说,如何将选定的单选按钮传递给脚本的其余部分?
问题 2:如何让第二个单选按钮包含用户文本输入(沿着 tkSimpleDialog.askstring 行)?我希望该按钮显示一个单选按钮、一个提示(“输入值:”)和一个供用户输入文本的空间——所有这些都在一行上作为一个单选按钮选项。
所以整个对话框的顶部单选按钮应该是一个普通的单选按钮,而第二个按钮指定用户输入并包含该用户输入的空间(和 OK 按钮)。
到目前为止,我打开了一个包含两个选项的对话框,但该值没有传递给我可以看到的任何内容;即使在我选择单选按钮之前,选择也会返回为 0。
非常感谢您对这两个问题的任何帮助,谢谢。
到目前为止,这是我的脚本:
from Tkinter import*
master = Tk()
var = IntVar()
Label(master, text = "Select OCR language").grid(row=0, sticky=W)
Radiobutton(master, text = "default", variable = var, value = 1).grid(row=1, sticky=W)
Radiobutton(master, text = "user-defined", variable = var, value = 2).grid(row=2, sticky=W)
Button(master, text = "OK", command = master.quit).grid(row=3, sticky=W)
selection = var.get()
print "Selection:", selection
mainloop()
#If selection == 0 do one thing
#If selection == 1 do something else...
【问题讨论】:
-
"如果您需要在值更改时得到通知,请为每个按钮附加一个命令回调。"来自 effbot 文档effbot.org/tkinterbook/radiobutton.htm 另见tutorialspoint.com/python/tk_radiobutton.htm
-
IntVar默认值为 0,因此在您开始之前,mainloopvar 的值为 0 yes。 -
hmm...不知道为什么它在
master.quit()之后又回到0,但在我的回答中它确实在end_program中有正确的值。
标签: python tkinter radio-button