栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python Tkinter中的单选按钮值

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python Tkinter中的单选按钮值

聚会晚了一点,但是我在尝试在Tkinter单选按钮上找到东西时偶然发现了这个问题。

问题1:

我改变了三件事:

1)我立即设置的值

var
1
你定义后。这样做
var.set(1)
可以确保您选择了第一个单选按钮(其值为1,如稍后在代码中所定义)。

2)我已将您的

master.quit
命令替换为
quit_loop
。在此功能中:

  • var
    值通过
    print
    get
    语句打印。该
    get
    会“得到”的当前值
    var
    ,这取决于哪个单选按钮被选中的。
  • 我在此函数中创建了一个全局变量,该变量将
    get
    成为的当前值
    var
  • 我在其中添加了括号,
    master.quit()
    因为它不再位于单选按钮的命令中。请注意,如果您计划使用IDLE,则
    master.destroy()
    可能是更合适的选择。

3)由于

selection
在函数中创建了变量,我们现在将所需的值存储在变量中。
if
在代码的末尾有一个最终声明,表明它是有效的。

from Tkinter import *master = Tk()var = IntVar()var.set(1)def quit_loop():    print "Selection:",var.get()    global selection    selection = var.get()    master.quit()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=quit_loop).grid(row=3, sticky=W)master.mainloop()if selection == 1:    print "My Value is equal to one."elif selection == 2:    print "My value is equal to two."

问题2:

我会保持简单,只需在您的单选按钮之后添加标签和输入框即可。这意味着我们还必须使用列,因为您在先前的代码中没有定义任何列,这使所有内容默认为列0。我们希望您的第二个单选按钮为“
radio,label,entry”,该列需要三列。

1)先前包含的标签

"Select OCR language"
将跨越三列,并
columnspan=3
添加到网格参数中。第一个单选按钮也是如此。

2)我在您的第二个单选按钮之后添加了一个

Label
和一个
Entry
。请注意,列从0到2,定义了我们的三列。标签具有简单
"Entervalue:"
文本,而条目具有变量
textvariable=entry_text
。我将此变量添加
entry_text
到了代码的开头,并立即将其值设置为
###
。请注意,这是一个
string
(因此,
文本 变量),因此仅由整数决定是否添加检查。

3)当然,这没有链接到第二个单选按钮。如果我们选择它,它的值为2,而不是

Entry
小部件的值。这就是为什么在先前创建的
quit_loop
函数中,添加了一条小
if
语句,该语句将条目的值分配给
selection
是否选择了第二个单选按钮。

from Tkinter import *master = Tk()var = IntVar()var.set(1)entry_text = StringVar()entry_text.set("###")def quit_loop():    print "Selection:",var.get()    global selection    selection = var.get()    if selection == 2:        selection = entry_text.get()    master.quit()# Add columnspan to these widgetsLabel(master, text = "Select OCR language").grid(row=0, sticky=W, columnspan=3)Radiobutton(master, text = "default", variable=var, value = 1).grid(row=1, sticky=W, columnspan=3)# Order these widgets in their appropriate columnsRadiobutton(master, variable=var, value = 2).grid(row=2, sticky=W, column=0)Label(master, text="Enter value:").grid(row=2, sticky=W, column=1)Entry(master, textvariable=entry_text).grid(row=2, sticky=W, column=2)# Example of what happens without columnspanButton(master, text = "OK", command=quit_loop).grid(row=3, sticky=W)master.mainloop()print selection

小费

如果这个简单的GUI仍然很小,则可以用这种方式编写代码。但是,在此基础上进行大量扩展,我建议您采用面向对象的方法,因为它确实可以大大提高可读性,尤其是在定义函数时。这样,就不必事先定义它们。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/614229.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号