首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >所有Python都已填入,即使使用: radio_1.select?

所有Python都已填入,即使使用: radio_1.select?
EN

Stack Overflow用户
提问于 2017-02-17 20:52:58
回答 1查看 1.1K关注 0票数 0

当我运行下面的代码时,即使我调用了difficulty1.select函数,我已经创建的所有Radiobuttons都会被填充。我在一本书中被告知,你可以调用difficulty1.select,然后只有你想要被选中的单选按钮才会被选中。

代码:

代码语言:javascript
复制
# Import Statements
from tkinter import *
import turtle
import tkinter.messagebox as box

# Windows Statements
window = Tk()
window.title("Options - CraftClash - Windows - Version 0.0.3 BETA")

# Widgets
difficultytitle = Label(window, text = "\n\nDifficulty:")
difficultyframe = Frame(window)
difficulty = StringVar()
difficulty1 = Radiobutton(difficultyframe, text = 'Easy', variable = difficulty)
difficulty2 = Radiobutton(difficultyframe, text = 'Normal', variable = difficulty)
difficulty3 = Radiobutton(difficultyframe, text = 'Hard', variable = difficulty)
difficulty1.select()

# Pack Statements
difficultytitle.pack(side = TOP)
difficulty1.pack(side = LEFT)
difficulty2.pack(side = LEFT)
difficulty3.pack(side = LEFT)
difficultyframe.pack(side = TOP)

# Sustain Window
window.mainloop()

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-18 17:20:47

.select()方法用于选择(或打开)单选按钮。在使用它之前,你还需要首先了解当你制作variable = StringVar()时,无线电按钮是如何独立工作的。我建议你在无线电按钮上读这个网页。引用一段话:

您可能会想,当控制变量从未被设置并且用户从未点击它们时,一组无线电按钮是什么状态?每个控件变量都有一个默认值: IntVar为0,DoubleVar为0.0,StringVar为“”。如果其中一个无线电按钮具有该值,则该无线电按钮将首先设置。如果没有任何无线电按钮的值选项与变量的值匹配,则所有的无线电按钮都将被清除。

因此,在您的代码中,没有定义值。让我们假设这3个按钮分别具有不同的值,如"Monday""Tuesday""Wednesday"。接下来,为名为“困难”的StringVar变量分配一些值。您需要在困难的情况下使用.set()方法。请注意,如果其值与无线电按钮值不同,则不会选择该无线电按钮。接下来,假设您允许difficulty = 'Tuesday',您将看到difficulty2被选中。接下来,如果添加命令difficulty1.select(),您将看到困难2&3被取消选中,1被选中。对您的代码进行以下更改并尝试它。

代码语言:javascript
复制
# Widgets
difficultytitle = Label(window, text = "\n\nDifficulty:")
difficultyframe = Frame(window)
difficulty = StringVar()
difficulty.set('Tuesday')
difficulty1 = Radiobutton(difficultyframe, text = 'Easy', variable = difficulty,
                          value='Monday')
difficulty2 = Radiobutton(difficultyframe, text = 'Normal', variable = difficulty,
                          value='Tuesday')
difficulty3 = Radiobutton(difficultyframe, text = 'Hard', variable = difficulty,
                          value='Wednesday')
#difficulty1.select()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42307184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档