鱼C论坛

 找回密码
 立即注册
查看: 1474|回复: 5

[已解决]tkinter的wen'ti

[复制链接]
发表于 2020-7-18 11:33:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
视频中讲的checkbutton有个一代码
from tkinter import *
root = Tk()

GIRLS = ['西施','貂蝉','王昭君','杨玉环']
v = []
for each in GIRLS:
    v.append(IntVar())
    b = Checkbutton(root, text = each,variable = v[-1])
    b.pack(anchor = W)
mainloop()
v.append(IntVar())
这个IntVar()是什么东西呢
variable = v[-1]
为什么要加一个variable呢?
因为这一点我不懂,所以自己写的时候就没有写,发现出来的界面一摸一样,这是我的代码
[code]from tkinter import *
root = Tk()

GIRLS = ['西施','貂蝉','王昭君','杨玉环']
for each in GIRLS:
    b = Checkbutton(root, text = each)
    b.pack(anchor = W)
mainloop()
[/c
ode]
麻烦鱼油们解答一下
最佳答案
2020-7-18 11:52:27


那这里没差别了,for 循环会自动给每一个 Checkbutton 不同的 variable 值,而甲鱼哥写的更加正规,自己重新给  Checkbutton 设置不同的 variable 对象

你可以试试这个代码:
from tkinter import *
root = Tk()

GIRLS = ['西施','貂蝉','王昭君','杨玉环']
for each in GIRLS:
    b = Checkbutton(root, text = each,variable = 1)
    b.pack(anchor = W)
mainloop()

就是因为每个按钮的 variable 值相同导致的选一个全部被选择
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-7-18 11:34:42 | 显示全部楼层
from tkinter import *
root = Tk()

GIRLS = ['西施','貂蝉','王昭君','杨玉环']
for each in GIRLS:
    b = Checkbutton(root, text = each)
    b.pack(anchor = W)
mainloop()
乱了。。。再发一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-18 11:44:49 | 显示全部楼层
Twilight6 发表于 2020-7-18 11:40
因为 for 循环每次只加入一个到 v 中去呀,每次对应的值从列表中对应上去

比如你第一次 西施 加入 v  ...
b = Checkbutton(root, text = each,variable = v[-1])

它的值不是each给的吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-18 11:45:50 | 显示全部楼层

抱歉是我看错了,我的错,我的错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-18 11:46:30 | 显示全部楼层
Twilight6 发表于 2020-7-18 11:45
抱歉是我看错了,我的错,我的错

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-18 11:52:27 | 显示全部楼层    本楼为最佳答案   


那这里没差别了,for 循环会自动给每一个 Checkbutton 不同的 variable 值,而甲鱼哥写的更加正规,自己重新给  Checkbutton 设置不同的 variable 对象

你可以试试这个代码:
from tkinter import *
root = Tk()

GIRLS = ['西施','貂蝉','王昭君','杨玉环']
for each in GIRLS:
    b = Checkbutton(root, text = each,variable = 1)
    b.pack(anchor = W)
mainloop()

就是因为每个按钮的 variable 值相同导致的选一个全部被选择
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-19 23:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表