当前位置: 首页 > 面试题库 >

Tkinter单选按钮IntVar属性错误

方鸿羲
2023-03-14
问题内容

我知道,当您使用单选按钮时,如果要使用数字,则需要将变量设置为IntVar()。不幸的是,我在下面运行的代码带有以下错误:

Traceback (most recent call last):
  File "F:/Analysis and Maths/PD diagnostic tool/Project files/PD Tool v2.py", line 49, in <module>
v = IntVar()
File "C:\Python34\lib\tkinter\__init__.py", line 354, in __init__
Variable.__init__(self, master, value, name)
File "C:\Python34\lib\tkinter\__init__.py", line 236, in __init__
self._root = master._root()
AttributeError: 'NoneType' object has no attribute '_root'

有谁知道为什么会这样?我想做的是通过使用单选按钮更改加载到pygame中的图像

v = IntVar()

class Window(Frame):
def __init__(self, master=None): # This defines the main window
     Frame.__init__(self, master)
     self.master = master
     self.init_window()

def init_window(self):
    global v
    self.master.title("PD Tool")
    self.pack(fill = BOTH, expand = 1) # This packs the frame
    showImg(self)
    import_button = ttk.Button(self, text = "import", command = lambda: filename()).place(x = 10, y = 5)
    start_pygame_button = ttk.Button(self, text = "Start PD tool", command = lambda:
    start_pygame_window()).place(x = 10, y = 35)
    RadioButton1 = ttk.Radiobutton(self, text = "One", variable = v, value = 1).place(x = 10, y=220)
    RadioButton2 = ttk.Radiobutton(self, text = "Two", variable = v, value = 2).place(x = 10, y=310)
    RadioButton3 = ttk.Radiobutton(self, text = "Three", variable = v, value = 3).place(x = 10, y=410)
    RadioButton4 = ttk.Radiobutton(self, text = "Four", variable = v, value = 4).place(x = 10, y=510)
    RadioButton5 = ttk.Radiobutton(self, text = "Five", variable = v, value = 5).place(x = 10, y=600)
    RadioButton6 = ttk.Radiobutton(self, text = "Six", variable = v, value = 6).place(x = 10, y=700)



def active_image():
    global file_path
    if v == 1:
        file_path = "F:\Analysis and Maths\PD diagnostic tool\Images\one.png"
        print(v)
    elif v == 2:
        file_path = "F:\Analysis and Maths\PD diagnostic tool\Images\wo.png"
        print(file_path)
    elif v == 3:
        file_path = "F:\Analysis and Maths\PD diagnostic tool\Images\hree.png"
    elif v == 4:
        file_path = "F:\Analysis and Maths\PD diagnostic tool\Images\our.png"
    elif v == 5:
        file_path = "F:\Analysis and Maths\PD diagnostic tool\Images\ive.png"
    elif v == 6:
        file_path = "F:\Analysis and Maths\PD diagnostic tool\Images\six.png"
    else:
        file_path = "F:\Analysis and Maths\PD diagnostic tool\Images\one.png"

    active_image_loaded = pygame.image.load(file_path)

    gameDisplay.blit(active_image_loaded,(0,0))

问题答案:

您需要在创建IntVar对象之前创建根窗口小部件。

调整代码以首先创建根窗口小部件:

root = Tk()  # <---
v = IntVar()


 类似资料:
  • 主要内容:Checkbutton复选框控件单选框按钮控件(Radiobutton),同样允许用户选择具体的选项值,不过与 Listbox 相比,单选按钮控件仅允许用户选择单一的选项值,各个选项值之间是互斥的关系,因此只有一个选项可以被用户选择。 Radiobutton 控件通常都是成组出现的,所有控件都使用相同的变量。Radiobutton 可以包含文本或图像,每一个按钮都可以与一个 Python 函数相关联。当按钮被按下时,对应的函数会

  • 硒IDE - 运行脚本时,硒IDE中的单选按钮出现错误。在我的脚本中,需要选择单选按钮(选择日期),但其错误消息“[错误] 元素 id=radio250 未找到”。它在这里停止执行。即使我使用另一个日期,它仍然停在同一点上。如何更改动态中的值? 我是测试行业的新手,希望能在这方面有所帮助。我知道这与xpath有关,但我不知道如何使用它;)

  • 问题内容: 假设已编写以下代码: 我试图确定已选择哪个单选按钮,然后提取用户选择的那个单选按钮的值。我该怎么做呢? 问题答案: 关键是要确保两个单选按钮共享相同的变量。然后,要知道选择了哪个变量,您只需要获取变量的值即可。 这是一个例子:

  • 我有一个表单,它有一组单选按钮,我正在用php将选中按钮的值发送到另一个页面。表单具有添加另一组相同单选按钮的选项,所以如果我使用以下给出name属性的方法: 并添加上述的克隆, 这将给我每个输入的值,这将总共4。我试图使用括号递增方法,但仍保留返回选中的单选按钮值的功能。 所以我的问题是,有没有一种方法可以使用方括号对name属性进行自动递增,但是当将值发送到php时,确保每个div单选按钮分组

  • 我有一个单选按钮的对齐问题。我想要三列表单元素。由于某种原因,当我向窗体中添加单选按钮时,它们似乎占用了左侧一个新列的空间。我希望有一个简单的网格布局与每个细胞有相等的大小。情况似乎并非如此。如有任何建议,我们将不胜感激! 下面是我的部分代码:

  • 主要内容:创建单选按钮,单选按钮组,单选按钮事件,单选按钮焦点单选按钮通常组合在一起,以便用户进行单选,即用户只能在单选按钮列表中选择一个项目。 例如,当选择鞋子尺寸时,我们通常从列表中选择一个尺寸。 单选按钮只能执行:选择或取消选择。 以下代码显示,当放置在中时,只能选择一个。 上面的代码生成以下结果。 创建单选按钮 包中的类有两个构造函数。 要为其标签创建一个带有空字符串的单选按钮,然后再设置标签。 要创建具有指定标签的单选按钮。 方法带有参数可以显式选