Tkinter中Checkbox默认设置勾选

Checkbutton常用属性如下:

名称说明
text控件显示文本
variable 和复选框按钮关联的变量,该变量值会随着用户选择行为来改变(选或不选),即在 onvalue 和 offvalue 设置值之间切换,这些操作由系统自动完成
onvalue通过设置 onvalue 的值来自定义选中状态的值。传输给variable。
offvalue通过设置 offvalue 的值来自定义未选中状态的值。传输给variable。
indicatoron默认为 True,表示是否绘制用来选择的选项的小方块,当设置为 False 时,会改变原有按钮的样式,与单选按钮相同
selectcolor选择框的颜色(即小方块的颜色),默认由系统指定
selectimage设置当 Checkbutton 为选中状态的时候显示的图片,若如果没有指定 image 选项,该选项被忽略
textvariableCheckbutton 显示 Tkinter 变量(通常是一个 StringVar 变量)的内容,如果变量被修改,Checkbutton 的文本会自动更新
wraplength表示复选框文本应被分成多少行,该选项指定每行的长度,单位是屏幕单元,默认值为 0

我们可以通过variable属性来控制button的勾选状态,不多说了上代码:

from tkinter import Tk, Entry,Checkbutton,BooleanVar 
var_isline = BooleanVar()
if data['islinefeed'] == 'True':
    check_isline = Checkbutton(window, text="换行输出",onvalue=True,offvalue=False,variable=var_isline)
    var_isline.set(True)
else:
    check_isline = Checkbutton(window, text="换行输出", state="normal",variable=var_isline)
check_isline.place(x=410,y=0)

代码分析:

1.我们利用tk自带的函数定义一个var_isline对象(ps:BoolenVar获取的就是Bool型,IntVar就是Int型,根据需求Import即可)

2.check_isline = Checkbutton(window, text="换行输出",onvalue = True,offvalue =False,variable=var_isline):定义checkbutton对象

window:窗口对象

text:文本内容

onvalue=True:勾选时,variable 赋予True值

offvalue = False :未勾选时,variable 赋予False值

variable = var_isline:使用变量var_isline来监听和控制勾选状态

3.var_isline.set(True):将var_isline置为True也就是对应onvalue状态,即为勾选状态

运行框架:可以看出,换行输出就自动勾选了

补充一点:使用var_line.get()来获取该值的内容

var_line.get()

整体代码如下:这是我自己写了一窗口仅供参考:该窗口实现了在鼠标位置弹出一个无边框的设置界面

import pyautogui
from tkinter import Tk, Entry,Checkbutton,BooleanVar
from utils.config_process import *
def open_quick_set_message():
    def save_message(event):  # 修改这里,去掉括号
        message = entry.get()
        path = "config.txt"
        data = getconfig(path)
        data['message'] = message
        data['islinefeed']= str(var_isline.get())
        data['isalways'] = str(var_isalways.get())
        saveconfig(data,path)
        if var_isalways.get() == False:
            window.destroy()
            print('hh')
    data = getconfig("config.txt")
    message = data['message']
    window = Tk()
    window.attributes("-topmost", True)
    entry = Entry(window, width=400)
    entry.pack()
    entry.bind('<Return>', save_message)  # 使用save_message函数本身,而不是调用它
    entry.insert(0,message)
    var_isalways = BooleanVar()
    var_isline = BooleanVar()
    #导入初始值,variable用来传入save是判断
    if data['islinefeed'] == 'True':
        # print(data['islinefeed'])
        check_isline = Checkbutton(window, text="换行输出",onvalue=True,offvalue=False,variable=var_isline)
        var_isline.set(True)
    else:
        print('id')
        check_isline = Checkbutton(window, text="换行输出", state="normal",variable=var_isline)
    check_isline.place(x=410,y=0)
    if data['isalways'] == 'True':
        check_isalways = Checkbutton(window, text="连续模式",variable=var_isalways,onvalue=True,offvalue=False)
        var_isalways.set(True)
    else:
        check_isalways = Checkbutton(window, text="连续模式", onvalue=True,offvalue=False,variable=var_isalways,state="normal")
        # print(var_isalways.get())
    check_isalways.place(x=515,y=0)
    window.geometry(f"625x30+{pyautogui.position()[0]}+{pyautogui.position()[1]}")
    window.overrideredirect(1)
    window.bind('<Escape>', lambda event: window.destroy())
    window.mainloop()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

渊兮旷兮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值