鱼C论坛

 找回密码
 立即注册
查看: 4160|回复: 1

tkinter中StringVar与IntVar的区别

[复制链接]
发表于 2020-9-13 22:09:35 | 显示全部楼层 |阅读模式
20鱼币
在网上搜了很长时间没有搜到这个函数的区别,只搜到相关的内容
StringVar的作用
我们在使用界面编程的时候,有些时候是需要跟踪变量的值的变化,以保证值的变更随时可以显示在界面上。由于python无法做到这一点,所以使用了tcl的相应的对象,也就是StringVar、BooleanVar、DoubleVar、IntVar所需要起到的作用。

于是写了几行代码试了下
代码1
from tkinter import *

master = Tk()
master.geometry("200x150")

var = StringVar()

c = Checkbutton(master, text="Hello World", variable=var)
c.pack()

mainloop()


代码2
from tkinter import *

master = Tk()
master.geometry("200x150")

var = IntVar()

c = Checkbutton(master, text="Hello World", variable=var)
c.pack()

mainloop()



发现代码1运行后显示如图1(内容直接选中)


发现代码2运行后显示如图2(内容未直接选中)

所以想请教大家下有什么区别,是什么时候该用StringVar,什么时候用IntVar,谢谢。

图1

图1

图2

图2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-13 22:18:14 | 显示全部楼层
网上找到这么一句话:intVar是对“bai整数”类型的du包装,stringVar是对“字符串”类型的包装。

整数可zhi以进行计算,比dao如2+3=5;字符串可以包含非数字的字符比如“abc”,但即便只由数字构成,也不能进行计算,比如“2”+“3”是得不到"5"的。

但是,在python中我们可以很方便地进行类型转换,所以从实际操作的角度讲,可能只用stringVar就够了。

而且checkbutton的variable变量,variable 的值为 1 或 0,代表着选中或不选中,和是哪一种类型应该无关吧,var.set(1)和var.set(0)可以控制选中未选中

评分

参与人数 1鱼币 +5 收起 理由
xue11 + 5

查看全部评分

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-18 18:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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