tkinter的v.append(IntVar)解释
大家好: 2018版0基础学习PYTHON中的67课有关TKINTER的用for循环建立CheckButton这一块。有个地方不知道怎么解释:from tkinter import *
root=Tk()
girls=["稀释","貂蝉","王昭君","杨玉环"]
v=[]
for girl in girls:
v.append(IntVar())
b=Checkbutton(root,text=girl,variable=v[-1])
b.pack()
root.mainloop()
就是上面:
1.for循环内v.append(IntVar())句代码我不明白什么意思?好像和其它的函数没有关系似的。
2.为什么不把上面的列表直接搞成v= 或者v=。
请解释一下,谢谢啊 py友们!
from tkinter import *
root=Tk()
girls=["稀释","貂蝉","王昭君","杨玉环"]
v=
for girl in girls:
# v.append(IntVar()) #这样弄不行,选一个就全选了。
b=Checkbutton(root,text=girl,variable=v[-1])
b.pack()
root.mainloop()
from tkinter import *
root=Tk()
girls=["稀释","貂蝉","王昭君","杨玉环"]
v=
for girl in girls:
v.append(IntVar()) #但是这样确可以,
b=Checkbutton(root,text=girl,variable=v[-1])
b.pack()
root.mainloop()
本帖最后由 suchocolate 于 2021-12-1 16:02 编辑
from tkinter import *
#type 1
root=Tk()
girls=["稀释","貂蝉","王昭君","杨玉环"]
v=
for girl in girls:
# v.append(IntVar())
b=Checkbutton(root,text=girl,variable=v[-1]) # 因为index始终是-1,所以用的都是v的最后一个元素,所以选一个就都全选了,前3个变量没有用到。
b.pack()
root.mainloop()
#type 2
v= #应该像教程里那样,v初始化为空。
for girl in girls:
v.append(IntVar())#虽然这样可以,但是v的前4个变量就浪费了,应该像教程里那样,v初始化为空。
b=Checkbutton(root,text=girl,variable=v[-1])
b.pack()
root.mainloop() python内一切皆对象,列表可以由我们常见的对象组成,也可以有其他类型的对象组成。v就是由IntVar变量对象组成。
IntVar():创建整数型变量
v.append(IntVar()):创建整数变量,添加到v列表中。因为最循环里,所以每次循环都会新建一个变量,加到列表里,所以v[-1]每次都是最新创建的变量。
from tkinter import *
root=Tk()
girls=["稀释","貂蝉","王昭君","杨玉环"]
# v= #这一行注销也能运行
for girl in girls:
v=IntVar() #这样也可以(我觉得比小甲鱼的方法好),但这是什么原理。这一行代码的原理。
b=Checkbutton(root,text=girl,variable=v)
b.pack()
root.mainloop()
root.mainloop() from tkinter import *
root=Tk()
girls=["稀释","貂蝉","王昭君","杨玉环"]
v=IntVar() #这一行选一个就全选了。
for girl in girls:
#v=IntVar() #但把这一行注销就不行了。为什么
b=Checkbutton(root,text=girl,variable=v)
b.pack()
root.mainloop()
root.mainloop()
页:
[1]