Python tkinter(5)复选框控件

您所在的位置:网站首页 tkinter复选框设置选中图片 Python tkinter(5)复选框控件

Python tkinter(5)复选框控件

2023-11-25 03:47| 来源: 网络整理| 查看: 265

目录 引入创建一个复选框复选框的属性颜色字体光标状态边框能否获取焦点对齐变量自定义返回值命令修改属性 方法勾选取消勾选改变状态 拓展勾选/取消勾选

引入

最近有想看更新的,感谢各位的关注!刚刚初中升高中就感受到了万般忙碌,不过无论如何还是要抽空更新的啦。由于时间比较宝贵,等到文章完成还需要一年半载(真是无语,高中不允许携带手机,否则会拿处分,而且我还住校,于是只有周日可以拿到手机,除此之外周末还有一大堆作业要写),所以我决定先发布文章,后续再慢慢完善~

废话不多说,这一次我们来看看tkinter的复选框控件。

复选框控件就是一个小勾子,一共有两种主要状态——选中和非选中。点击一下,就会切换选中状态。

创建一个复选框

老样子,先制作一个窗口,然后将复选框贴到窗口上。

import tkinter root = tkinter.Tk() check = tkinter.Checkbutton(root) check.pack() root.mainloop()

在这里插入图片描述

复选框的属性 颜色

复选框有各种各样的颜色。颜色包括字体颜色(fg或foreground)和背景颜色(bg或background)。颜色可以用英语单词(如"red"、"blue")来表示,也可以用HEX格式的颜色(如"#ff00ff"、"#abcd00")。

import tkinter root = tkinter.Tk() check = tkinter.Checkbutton(root,text="Hello World",fg="red",bg="blue")#创建一个复选框,蓝底红字 check.pack() #把输入框放到窗口上去 root.mainloop()

在这里插入图片描述

字体

你可以为复选框选择喜欢的字体。比如,我喜欢宋体字,希望字体大一点(25号),并且是斜体。

import tkinter root = tkinter.Tk() check = tkinter.Checkbutton(root,text="你好呀同学",font=("宋体",25,"italic")) #创建一个复选框,字体为宋体,字号25,斜体 #若不需要定义字体大小和字体样式,也可以直接写为: #check = tkinter.Checkbutton(root,font="宋体") check.pack() #把输入框放到窗口上去 root.mainloop()

在这里插入图片描述

关键词样式样例roman正体字在这里插入图片描述italic斜体字在这里插入图片描述bold粗体字在这里插入图片描述underline下划线在这里插入图片描述overstrike杠掉在这里插入图片描述 光标

光标有许多种样式。内容不少,这里就稍微介绍下吧,其余的内容我找时间再专门写一篇吧。

import tkinter root = tkinter.Tk() check = tkinter.Checkbutton(root,text="文本选择器",cursor="xterm") #光标放在输入框上后样式为文字选择器 check.pack() #把输入框粘到窗口上 root.mainloop() 状态

一般的tkinter控件都有2个常用的状态:正常(Normal)、禁用(Disabled),还有一些不常用的,如只读(Readonly)、活动(Active),这里只介绍Disabled和Normal吧,因为另外两个实在太不常见了。

import tkinter root = tkinter.Tk() check1 = tkinter.Checkbutton(root,text="Disabled",state=tkinter.DISABLED) #禁用,无法选中或取消选中 check1.pack() check2 = tkinter.Checkbutton(root,text="Normal",state=tkinter.NORMAL) #可以进行操作 check2.pack() root.mainloop()

在这里插入图片描述

边框

边框样式(relief)一共有这么几种:flat、groove、raised、ridge、solid、sunken,就一起来看看效果吧!

import tkinter root = tkinter.Tk() relief = ["flat","groove","raised","ridge","solid","sunken"] #不同的样式 for i in range(len(relief)): check = tkinter.Checkbutton(root,text=relief[i],relief=relief[i]) #各种边框的复选框 check.pack() #把不同样式的复选框放在窗口上 root.mainloop()

在这里插入图片描述

有了边框样式,我们还可以设置边框的厚度:bd或borderwidth。

import tkinter root = tkinter.Tk() check = tkinter.Checkbutton(root,text="Hello",bd=20,relief="groove") #厚厚的一层边框 check.pack() #把输入框放在窗口上 root.mainloop()

在这里插入图片描述

能否获取焦点

就是用户通过按Tab键能否将焦点切换到复选框上。若takefocus=False,则无法将焦点用Tab键切换到复选框上。默认takefocus=True。如:

import tkinter root = tkinter.Tk() check1 = tkinter.Checkbutton(root,text="Hello 1") check1.pack() check2 = tkinter.Checkbutton(root,text="Hello 2",takefocus=True) check2.pack() check3 = tkinter.Checkbutton(root,text="Hello 3",takefocus=False) check3.pack() root.mainloop()

可以运行一下上面的代码,试试能否用Tab键将焦点切换到第三个复选框上。

对齐

在Microsoft Office中,文字排版有三种主要的方式:靠左、居中、靠右。而在复选框中,若需要显示多行文字,也可以设置排班方式:justify。

import tkinter root = tkinter.Tk() poem = """ 静夜思 唐 李白 床前明月光, 疑是地上霜。 举头望明月, 低头思故乡。 """ check = tkinter.Checkbutton(root,text=poem,justify=tkinter.LEFT) check.pack() root.mainloop()

在这里插入图片描述

变量

复选框到底是否选中?这里,我们就需要将复选框当前状态存入一个变量中。如:

import tkinter root = tkinter.Tk() intvar = tkinter.IntVar() check = tkinter.Checkbutton(root,text="Hello World!",variable=intvar) check.pack() print(intvar.get()) root.mainloop()

在以上例子中,我创建了一个用于存储整数的变量,然后将变量与复选框的状态绑定在一起——简单来说,如果复选框被选中,那么intvar.get()就会返回 1 1 1,反之则返回 0 0 0。 注意调用tkinter.IntVar()等的tkinter变量容器,必须要先创建根窗口,否则会抛出异常。

自定义返回值

也可以自定义返回值:比如我想要复选框在选中的状态下返回"Yes",否则返回"No"。此时,就牵涉到onvalue和offvalue两个变量了。

import tkinter root = tkinter.Tk() strvar = tkinter.StringVar() check = tkinter.Checkbutton(root,text="Hello World!",variable=strvar,onvalue="Yes",offvalue="No") check.pack() root.mainloop()

Tkinter有两种变量容器:tkinter.IntVar和tkinter.StringVar()。详细内容我可能会在后期做介绍。

命令

在点击复选框后,可以执行一段代码。举个栗子:

import tkinter root = tkinter.Tk() def cmd(): print("Hello World!!!") check = tkinter.Checkbutton(root,text="Hello World!",command=cmd) check.pack() root.mainloop()

以上代码就是,按下复选框后输出"Hello World!!!"。

修改属性

就是问一下高中的必读书,就只有《红楼梦》和《乡土中国

import tkinter root = tkinter.Tk() check = tkinter.Checkbutton(root,text="Hello World") #复选框 check.pack() #把复选框贴在窗口上 check.configure(font=("Consolas",50)) #将字体设置为Consolas,字体大小50,默认样式 #configure 和 config 都可以, #check.config(font=("Consolas",50)) 效果一样 root.mainloop() 属性意义fg或foreground字体颜色bg或background背景颜色font字体,可以传入一个元组,也可以传入一个字符串cursor光标放置在输入框上时的样式state复选框状态,如禁用(Disabled),正常(Normal)relief边框样式justify对齐方式bd或borderwidth边框粗细takefocus是否可以获取焦点variable转存状态变量onvalue被选中时的返回值offvalue未勾选时的返回值command按下复选框后调用命令 方法 勾选

调用check.select()即可勾选中该复选框。

import tkinter root = tkinter.Tk() check = tkinter.Checkbutton(root,text="Hello World") check.pack() check.select() root.mainloop() 取消勾选

和勾选相反,调用check.deselect()即可。

import tkinter root = tkinter.Tk() check = tkinter.Checkbutton(root,text="Hello World") check.pack() check.deselect() root.mainloop() 改变状态

调用check.toggle()会改变当前复选框的状态。即,如果复选框当前状态是勾选状态,那么就会被取消勾选;如果当前没有勾选,就会勾选复选框。

import tkinter root = tkinter.Tk() check = tkinter.Checkbutton(root,text="Hello World") check.pack() check.toggle() root.mainloop() 拓展 勾选/取消勾选

勾选和取消勾选的方式其实不止一种。对于设置了状态转存变量的复选框来说,还可以通过改变变量的方式来设置勾选状态。如:

import tkinter root = tkinter.Tk() intvar = tkinter.IntVar() check = tkinter.Checkbutton(root,text="Hello World!",variable=intvar) check.pack() intvar.set(1) root.mainloop()

同理,intvar.set(0)也可以取消勾选。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3