python中intvar_Python的IntVar设置

在Python的Tkinter库中,作者遇到一个问题,尝试为动态数量的项目创建复选框,并通过IntVar设置其初始状态为已勾选。然而,代码引发了TypeError,因为尝试将1赋值给IntVar对象而不是调用它的set方法。问题出在对IntVar对象的调用上,应该使用set方法来设定其值。
摘要由CSDN通过智能技术生成

我写了一个应用程序,从用户那里获取一些数据,查询网站的API,并返回并处理API给出的数据。我试图通过为每个检索到的项目创建复选框,让用户更好地控制接下来发生的事情。在

因为每次使用时检索到的项目数会有所不同,所以我将复选框和IntVars放入列表中。但是,当我尝试将IntVars设置为1(这样它们都开始检查)时,我得到一个TypeError,告诉我它希望将IntVar实例作为第一个参数,但这对我来说没有任何意义,因为我首先尝试为IntVar调用一个方法。在

这是我的代码的简化版本,它会生成相同的错误:import Tkinter as tk

class Application(tk.Frame):

def __init__(self, master=None):

tk.Frame.__init__(self, master)

self.grid()

self.test_names = ["Box 1", "Box 2", "Box 3", "Box 4"]

self.boxes = []

self.box_vars = []

self.box_num = 0

btn_test1 = tk.Button(self, text="Test 1", width = 11, command = self.test1)

btn_test1.grid()

def test1(self):

for name in self.test_names:

self.box_vars.append(tk.IntVar)

self.boxes.append(tk.Checkbutton(self, text = name, variable = self.box_vars[self.box_num]))

self.box_vars[self.box_num].set(1)

self.boxes[self.box_num].grid(sticky = tk.W)

self.box_num += 1

root = tk.Tk()

app = Application(master=root)

app.mainloop()

以及按下按钮时的错误消息:

^{pr2}$

我做错什么了?在

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值