python中Tkinter复选框Checkbutton是否被选中判断

 更新时间:2023年01月28日 09:31:36   作者:Gordennizaicunzai  
这篇文章主要介绍了python中Tkinter复选框Checkbutton是否被选中判断方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Tkinter复选框Checkbutton是否被选中判断

定义一个BooleanVar型数据进行获取复选框状态。

>>> import tkinter as tk
>>> 
>>> window = tk.Tk()
>>> var = tk.BooleanVar()
>>> def get_var():
	print(var.get())
 
	
>>> cb = tk.Checkbutton(window, text="debug", variable=var, command=get_var)
>>> cb.pack()
>>> window.mainloop()
True
False
True
False
True

tkinter-checkbutton详解

介绍checkbutton的使用,由于checkbutton非常简单,所以本文的内容也非常的轻松,让我们开始吧!

  • checkbutton:checkbutton也就是我们常说的复选框。
  • text:设置checkbutton显示的文字
  • bg:设置背景颜色
  • fg:设置前景颜色
  • bd:设置checkbutton的边框宽度
  • relief:设置显示样式
  • underline:设置显示的文字是否带下划线
  • state:checkbutton是否响应用户操作, 值为’normal’,‘active’,‘disabled’
from tkinter import Tk,Checkbutton

main_win = Tk()
main_win.title('渔道的checkbutton控件')
width = 300 
height = 300 
main_win.geometry(f'{width}x{height}')

chkbt = Checkbutton(main_win, text='python', bg='yellow', fg='red', bd=10, relief='raised', underline=0, command=test_cb)
chkbt2 = Checkbutton(main_win, text='python', bg='yellow', fg='red', bd=5, relief='raised')
chkbt.pack()
chkbt2.pack()

print(chkbt['state'])		# 输出 normal
chkbt['state'] = 'disabled' # 将chkbt设置为 不可操作状态,整个checkbutton变成灰色状态

print(chkbt['variable'])	# 输出 !checkbutton
chkbt['variable'] = 'checkbutton_yudao'
print(chkbt['variable'])    # 输出 checkbutton_yudao

main_win.mainloop()

在这里插入图片描述

  • onvalue:checkbutton 被选中时的状态值,默认为1
  • offvalue:checkbutton 未被选中时的状态值,默认为0
  • variable:checkbutton的全局名,默认系统会自动给分配,也支持自定义。

常见用法是 记录checkbutton的选中状态值,这个属性的命名也很有意思,variable,就传递了一个信息,variable的值是一个变量,所以,常用IntVar作为variable属性的值。

from tkinter import Tk,Checkbutton

main_win = Tk()
main_win.title('渔道的checkbutton控件')
width = 300 
height = 300 
main_win.geometry(f'{width}x{height}')

chkbt = Checkbutton(main_win, text='python', bg='yellow', fg='red', bd=10, relief='raised', underline=0, command=test_cb)
chkbt2 = Checkbutton(main_win, text='python', bg='yellow', fg='red', bd=5, relief='raised')
chkbt.pack()
chkbt2.pack()

print(chkbt['state'])		# 输出 normal
chkbt['state'] = 'disabled' # 将chkbt设置为 不可操作状态,整个checkbutton变成灰色状态

print(chkbt['variable'])	# 输出 !checkbutton
chkbt['variable'] = 'checkbutton_yudao'
print(chkbt['variable'])    # 输出 checkbutton_yudao

main_win.mainloop()

因为没法截图,所以自行运行后查看效果。

因为是多选框,通过 variable对应的变量来判断对应的checkbutton的选中状态。

例如,这个实例代码中,可以通过val和val2来判断对应的checkbutton是否选中,然后在做对应的处理。

  • select():使checkbutton处于选中状态(on-state)
  • deselect():使checkbutton处于选中未状态(off-state)
  • toggle():切换checkbutton的选中状态
from tkinter import Tk,Checkbutton

main_win = Tk()
main_win.title('渔道的checkbutton控件')
width = 300 
height = 300 
main_win.geometry(f'{width}x{height}')

def test_cb():
    print(lan_c['state'])
    print(lan_c['variable'])
    print(lan_c['tristatevalue'])
    print(lan_c['onvalue'])
    print(lan_c['offvalue'])
    
lan_python      = Checkbutton(main_win, text='python',      bg='yellow') 
lan_c           = Checkbutton(main_win, text='c',           bg='blue', command=test_cb, relief='raised', bd=5) 
lan_c_plus_plus = Checkbutton(main_win, text='c++',         bg='yellow', underline=0) 
lan_java        = Checkbutton(main_win, text='java',        bg='blue') 
lan_php         = Checkbutton(main_win, text='php',         bg='yellow') 
lan_html5       = Checkbutton(main_win, text='html5',       bg='blue') 
lan_js          = Checkbutton(main_win, text='javascript',  bg='yellow') 

# 左对齐
lan_python.pack(anchor='w')
lan_c.pack(anchor='w')
lan_c_plus_plus.pack(anchor='w')
lan_java.pack(anchor='w')
lan_php.pack(anchor='w')
lan_html5.pack(anchor='w')
lan_js.pack(anchor='w')

lan_c_plus_plus.select()	# 将lan_c_plus_plus设置为选中状态
lan_c_plus_plus.deselect()	# 将lan_c_plus_plus设置为未选中状态
lan_c_plus_plus.toggle()	# 切换lan_c_plus_plus的状态

main_win.mainloop()

在这里插入图片描述

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 对Python使用mfcc的两种方式详解

    对Python使用mfcc的两种方式详解

    今天小编就为大家分享一篇对Python使用mfcc的两种方式详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Python使用Flask-SQLAlchemy连接数据库操作示例

    Python使用Flask-SQLAlchemy连接数据库操作示例

    这篇文章主要介绍了Python使用Flask-SQLAlchemy连接数据库操作,简单介绍了flask、Mysql-Python以及Flask-SQLAlchemy的安装方法,并结合实例形式分析了基于Flask-SQLAlchemy的数据库连接相关操作技巧,需要的朋友可以参考下
    2018-08-08
  • Python函数高级(命名空间、作用域、装饰器)

    Python函数高级(命名空间、作用域、装饰器)

    这篇文章介绍了Python函数的高级用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • OpenCV中图像通道操作的深入讲解

    OpenCV中图像通道操作的深入讲解

    图像处理管道是一组按预定义顺序执行的任务,用于将图像转换为所需的结果或提取一些有趣的特征,下面这篇文章主要给大家介绍了关于OpenCV中图像通道操作的相关资料,需要的朋友可以参考下
    2021-10-10
  • Python提取网页中超链接的方法

    Python提取网页中超链接的方法

    很多人在一开始学习Python,会打算用作爬虫开发。既然要做爬虫,首先就要抓取网页,并且从网页中提取出超链接地址。这篇文章给大家分享一个简单的方法,有需要的可以参考借鉴。
    2016-09-09
  • Python开发游戏之井字游戏的实战步骤

    Python开发游戏之井字游戏的实战步骤

    最近正在学习Python,所以最近做了一个关于Python的实例,下面这篇文章主要给大家介绍了关于Python开发游戏之井字游戏的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • python使用 __init__初始化操作简单示例

    python使用 __init__初始化操作简单示例

    这篇文章主要介绍了python使用 __init__初始化操作,结合实例形式分析了Python面向对象程序设计中使用__init__进行初始化操作相关技巧与注意事项,需要的朋友可以参考下
    2019-09-09
  • Sanic框架配置操作分析

    Sanic框架配置操作分析

    这篇文章主要介绍了Sanic框架配置操作,简单分析了Sanic框架中常见的加载配置使用方法,并简单说明了内置配置的预定义变量与对应功能,需要的朋友可以参考下
    2018-07-07
  • python列表的切片赋值实现

    python列表的切片赋值实现

    Python列表切片赋值是一种将一个列表的特定部分替换为新的元素的操作,本文主要介绍了python列表的切片赋值实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • Django开发的简易留言板案例详解

    Django开发的简易留言板案例详解

    这篇文章主要介绍了Django开发的简易留言板,结合实例形式详细分析了基于Python框架Django开发留言板的具体文件结构、流程步骤与相关操作技巧,需要的朋友可以参考下
    2018-12-12

最新评论