当前位置: 首页 > 知识库问答 >
问题:

如何确保选中单选按钮

梁丘成和
2023-03-14

我正在做一个实验,在这里我给参与者呈现刺激,并在每次刺激后问他们问题。我有四个问题,每一个在一个单独的框架。每个问题的答案是从七个RadioButton中选择一个。我有一个按钮也在一个单独的框架,用于保存选择的值和显示下一个刺激。这里的问题是,如果参与者忘记选择radiobutton之一,则该按钮的值将保存为0,我希望避免这种情况。我试图设定一个条件,仅在所有radiobuttons都被选中的情况下才启用下一个刺激按钮,但我失败了。有办法吗?

import Tkinter as tk
import PIL.Image 
import PIL.ImageTk
import tkMessageBox
from Tkinter import *

def present(tacton):
    qual_frame = tk.LabelFrame(group, padx=30, pady=30)
    qual_frame.grid(row=0, column=1)


    urgency_frame = tk.LabelFrame(qual_frame, text="How Urgent was the 
    stimulus?", padx=15, pady=30, font = "Verdana 14")
    urgency_frame.grid(row=1, column=0)
    urgency  = tk.IntVar()
    Radiobutton(master=urgency_frame, text="1 (Not at all)          ", 
    variable=urgency , value=1, font = "Verdana 12").grid(row=0, column=0)
    Radiobutton(master=urgency_frame, text="2                       ", 
    variable=urgency , value=2, font = "Verdana 12").grid(row=0, column=1)
    Radiobutton(master=urgency_frame, text="3                       ", 
    variable=urgency , value=3, font = "Verdana 12").grid(row=0, column=2)
    Radiobutton(master=urgency_frame, text="4 (Neutral)             ", 
    variable=urgency , value=4, font = "Verdana 12").grid(row=0, column=3)
    Radiobutton(master=urgency_frame, text="5                       ", 
    variable=urgency , value=5, font = "Verdana 12").grid(row=0, column=4)
    Radiobutton(master=urgency_frame, text="6                       ", 
    variable=urgency , value=6, font = "Verdana 12").grid(row=0, column=5)
    Radiobutton(master=urgency_frame, text="7 (Very much)", variable=urgency , 
    value=7, font = "Verdana 12").grid(row=0, column=6) 

    annoyance_frame = tk.LabelFrame(qual_frame, text="How Annoying was the 
    stimulus?", padx=15, pady=30, font = "Verdana 14")
    annoyance_frame.grid(row=5, column=0, sticky="nsew")
    annoyance = tk.IntVar()
    Radiobutton(master=annoyance_frame, text="1 (Not at all)          ", 
    variable=annoyance, value=1, font = "Verdana 12").grid(row=0, column=0)
    Radiobutton(master=annoyance_frame, text="2                       ", 
    variable=annoyance, value=2, font = "Verdana 12").grid(row=0, column=1)
    Radiobutton(master=annoyance_frame, text="3                       ", 
    variable=annoyance, value=3, font = "Verdana 12").grid(row=0, column=2)
    Radiobutton(master=annoyance_frame, text="4 (Neutral)             ", 
    variable=annoyance, value=4, font = "Verdana 12").grid(row=0, column=3)
    Radiobutton(master=annoyance_frame, text="5                       ", 
    variable=annoyance, value=5, font = "Verdana 12").grid(row=0, column=4)
    Radiobutton(master=annoyance_frame, text="6                       ", 
    variable=annoyance, value=6, font = "Verdana 12").grid(row=0, column=5)
    Radiobutton(master=annoyance_frame, text="7 (Very much)",  
    variable=annoyance, value=7, font = "Verdana 12").grid(row=0, column=6) 


    valence_frame = tk.LabelFrame(qual_frame, text = 'How Pleasant was the 
    stimulus?', padx = 15, pady = 30, font = "Verdana 14")
    valence_frame.grid(row=10, column=0, sticky="nsew")
    valence = tk.IntVar()
    Radiobutton(master=valence_frame, text="1 (Not at all)          ", 
    variable=valence, value=1, font = "Verdana 12").grid(row=0, column=0)
    Radiobutton(master=valence_frame, text="2                       ", 
    variable=valence, value=2, font = "Verdana 12").grid(row=0, column=1)
    Radiobutton(master=valence_frame, text="3                       ", 
    variable=valence, value=3, font = "Verdana 12").grid(row=0, column=2)
    Radiobutton(master=valence_frame, text="4 (Neutral)             ", 
    variable=valence, value=4, font = "Verdana 12").grid(row=0, column=3)
    Radiobutton(master=valence_frame, text="5                       ", 
    variable=valence, value=5, font = "Verdana 12").grid(row=0, column=4)
    Radiobutton(master=valence_frame, text="6                       ", 
    variable=valence, value=6, font = "Verdana 12").grid(row=0, column=5)
    Radiobutton(master=valence_frame, text="7 (Very much)",  variable=valence, 
    value=7, font = "Verdana 12").grid(row=0, column=6) 


    arousal_frame = tk.LabelFrame(qual_frame, text = 'How Exciting was the 
    stimulus?', padx = 15, pady = 30, font = "Verdana 14")
    arousal_frame.grid(row=15, column=0, sticky="nsew")
    arousal = tk.IntVar()
    Radiobutton(master=arousal_frame, text="1 (Not at all)          ", 
    variable=arousal, value=1, font = "Verdana 12").grid(row=0, column=0)
    Radiobutton(master=arousal_frame, text="2                       ", 
    variable=arousal, value=2, font = "Verdana 12").grid(row=0, column=1)
    Radiobutton(master=arousal_frame, text="3                       ", 
    variable=arousal, value=3, font = "Verdana 12").grid(row=0, column=2)
    Radiobutton(master=arousal_frame, text="4 (Neutral)             ", 
    variable=arousal, value=4, font = "Verdana 12").grid(row=0, column=3)
    Radiobutton(master=arousal_frame, text="5                       ", 
    variable=arousal, value=5, font = "Verdana 12").grid(row=0, column=4)
    Radiobutton(master=arousal_frame, text="6                       ", 
    variable=arousal, value=6, font = "Verdana 12").grid(row=0, column=5)
    Radiobutton(master=arousal_frame, text="7 (Very much)",  variable=arousal, 
    value=7, font = "Verdana 12").grid(row=0, column=6) 



    next_frame = tk.LabelFrame(group, padx=20, pady=20)
    next_frame.grid(row=6, column=1)

    Next_Stimulus = tk.Button(master=next_frame, text="Next Stimulus",  
    bg="green", padx=20, pady=20, width=20, font = "Verdana 12")
    Next_Stimulus.pack()



    root.mainloop()

共有1个答案

萧树
2023-03-14

您可以让按钮始终处于活动状态,并在按下它时检查条件,只有在所有变量都设置好的情况下才进入下一个刺激:

if all([urgency.get(), annoyance.get()] ... etc):
    # go to next stimulus

也可以仅在全部设置后跟踪IntVars和enable按钮中的更改。为每个IntVar设置跟踪:

urgency.trace('w', enable_button)

然后在回调函数中检查IntVar状态:

def enable_button(*args):
    if all([urgency.get(), annoyance.get()] ... etc):
        Next_Stimulus.config(state=tk.NORMAL)
 类似资料:
  • 问题内容: 在使用jQuery提交AJAX表单后,我想取消选中单选按钮。我有以下功能: 借助此功能,我可以清除文本框中的值,但不能清除单选按钮的值。 顺便说一句,我也尝试过,但是那没用。 问题答案: 要么(普通js) 或(jQuery)

  • 如何通过调用javascript的内联函数来检查单选按钮是否被选中? 现在我没有得到任何东西,它忽略了cnfrm函数,所以我想让它执行,这样我就可以检查它是否被选中。

  • 下面的代码是从test.jsp页面获取数据的联机测试。现在,当用户单击一个单选按钮并单击next时,它将存储该单选按钮的值,并显示该单选按钮的next值。在这里,单选按钮正常工作,但我不能存储每个单选按钮的值单击。 上面的代码将hidden字段的值传递给test.jsp,以便带来该值。

  • 问题内容: 我已经在单选组中动态创建了两个单选按钮,并选中其中一个。我需要在我按下另一个按钮时将其值保存在字符串中。但是我已经为此实现了,但是第一次没有用。这是我的代码。 问题答案: xml文件 Java代码

  • 我正在尝试使用selenium和Python单击这个单选按钮。 我有 但它不允许我点击它。我如何使用名称、值或类、值等的组合来点击? 关于如何使用硒,是否有一个很好的信息来源?因为我所发现的大部分是在java上使用的,而我使用的是Python。 编辑:使用XPATH

  • 问题内容: 我的JS程序遇到一些奇怪的问题。我的工作正常,但由于某种原因,它不再工作。我只想查找单选按钮的值(已选中该按钮)并将其返回给变量。由于某种原因,它不断返回。 这是我的代码: : HTML: 问题答案: 您可以执行以下操作: