关于Python Tkinter 复选框 ->Checkbutton

 正文如下:

import tkinter as tk
windows = tk.Tk()
windows.title(\'复选框\')
lab = tk.Label(windows, text=\'请选择你喜欢做的事\', fg=\'blue\', bg=\'lightblue\', width=35)
lab.grid(row=0, pady=2)
var_b = tk.IntVar()
print(var_b.get())
check_button_b = tk.Checkbutton(windows, text=\'打篮球\', variable=var_b)
check_button_b.grid(row=2)

var_c = tk.IntVar()
print(var_c.get())
check_button_c = tk.Checkbutton(windows, text=\'打豆豆\', variable=var_c)
check_button_c.grid(row=3)

tk.mainloop()

关于Python Tkinter 复选框 ->Checkbutton

上述代码中我们都能看到 IntVar()整形变量,默认值是 0 ,默认显示的复选框是未勾选状态 。

当然你不用这个变量也行,Checkbutton是有默认值的,默认值也是 0 ,复选框同样也是未勾选状态 。

check_button_a = tk.Checkbutton(windows, text=\'看电影\')
check_button_a.grid(row=1)
 
check_button_b = tk.Checkbutton(windows, text=\'打篮球\')
check_button_b.grid(row=2)
 
tk.mainloop()

关于Python Tkinter 复选框 ->Checkbutton

但是当我们使用StringVar()字符串变量,运行后复选框不仅默认选中了,而且复选框上还出现了一层灰色遮罩

var_b = tk.StringVar()
check_button_b = tk.Checkbutton(windows, text=\'打篮球\', variable=var_b)
check_button_b.grid(row=2)
 
var_c = tk.StringVar()
check_button_c = tk.Checkbutton(windows, text=\'打豆豆\', variable=var_c)
check_button_c.grid(row=3)
 
tk.mainloop()

关于Python Tkinter 复选框 ->Checkbutton

个人理解的:因为StringVar()是字符串变量,它的默认值是这样的 “ ' ' ”。这样就导致了Checkbutton中variable接收的是 1,运行成功后,显示的也是选中状态了。

​DoubleVar()浮点数变量和BooleanVar()布尔变量也是可以正常使用的

var_b = tk.DoubleVar()
print(var_b.get())
check_button_b = tk.Checkbutton(windows, text=\'打篮球\', variable=var_b)
check_button_b.grid(row=2)
 
var_c = tk.BooleanVar()
print(var_c.get())
check_button_c = tk.Checkbutton(windows, text=\'打豆豆\', variable=var_c)
check_button_c.grid(row=3)
 
tk.mainloop()

关于Python Tkinter 复选框 ->Checkbutton

var_b = tk.DoubleVar()    # 浮点型变量,默认值为 0.0
var_c = tk.BooleanVar()   # 布尔型变量,默认值为 False
var_d = tk.IntVar()       # 整形变量,默认值为 0
var_e = tk.StringVar()    # 字符串变量,默认值为 \'\'

F:\\virtualEnvironment\\venv\\Scripts\\python.exe F:/git/test-python/tkinterGui/tkinterExampleCheckButton.py
0.0
False
0
Process finished with exit code 0

当遇到多个选项,又需要存储的时候,就用上了字典和for循环操作,在用字典存值

import tkinter as tk
 windows = tk.Tk()
windows.title(\'复选框\')
lab = tk.Label(windows, text=\'请选择你喜欢做的事\', fg=\'blue\', bg=\'lightblue\', width=35)
lab.grid(row=0, pady=2)
def print_info():
    a = \'\'
    for j in select_all:
        if select_all[j].get() == True:
            a = a + enjoyment[j] + \'\\t\'
    print(a)
enjoyment = {0: \"打篮球\", 1: \"踢足球\", 2: \"看电影\", 3: \"打豆豆\", 4: \"演   讲\", 5: \"撸代码\"}
select_all = {}
for i in range(len(enjoyment)):
    select_all[i] = tk.BooleanVar()
    tk.Checkbutton(windows, text=enjoyment[i], variable=select_all[i]).grid(row=i+1)
 
btn = tk.Button(windows, text=\'确定\', command=print_info).grid(pady=2)
tk.mainloop()

关于Python Tkinter 复选框 ->Checkbutton

点击 “ 确定 ” 按钮,控制台就会打印为们获取的值,如下展示效果

F:\\virtualEnvironment\\venv\\Scripts\\python.exe F:/git/test-python/tkinterGui/tkinterExampleCheckButton.py
打篮球    踢足球    看电影    
Process finished with exit code 0

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容