前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【tkinter系列 第五课 Checkbutton窗口部件 】

【tkinter系列 第五课 Checkbutton窗口部件 】

作者头像
叶子陪你玩
发布2020-03-12 15:09:40
1.5K0
发布2020-03-12 15:09:40
举报
前言

python中通常我们写程序,显示结果和操作都是在终端区,如果要想实现一个有显示界面的程序那该怎样实现呢?python中有好几个库都可以实现,这个系列我们一起来学习如何使用python自带的tkinter库来实现。

本节课将要学习Checkbutton窗口部件,Checkbutton又叫复选框,那什么时候该用复选框呢?通常是在两个不同值之间选中或者不选中,一组按钮就可以实现很多值的一个选择。

例-1:登入网站是否要记住网站账号密码

例-2:选择你喜欢的动物

今天我们组后就会实现一个可以选择自己喜欢的水果的一个案例。

1.显示一个最简单的复选框。

代码:

代码语言:javascript
复制
from tkinter import *
#创建一个主窗口
root = Tk()
# 创建 宽400高250的窗口 x是小写的英文字符
root.geometry('400x250')
# 通过设置变量,可以追踪查询按钮状态
var = IntVar()
# 定义按钮的变化的一个反应
def print_state():
    print(var.get())
# c = Checkbutton(root, text="记住我", )
# c.pack()
# 简写方法 设置文本内容,绑定变量和命令
Checkbutton(root, text="记住我",variable=var,command=print_state ).pack()
# 程序一直循环,直到我们关闭窗口
root.mainloop()

效果:

解释:

复选框从一个状态变化到另外一个状态就会触发命令,启动程序是没有选中的,这是用鼠标点击选中,在终端区就会打印出1,再点击取消选中就会打印0。之所以会出现这种情况是因为按钮默认选中是1,没选中是0。

如果我要实现选中是10,没选中是1该怎样做呢?

非常简单,添加两个参数就可以了。

代码语言:javascript
复制
Checkbutton(root, text="记住我", variable=var, onvalue=5, offvalue=1,command=print_state).pack()

解释:

onvalue表示选中的值,offvalue表示没选中的值。

效果:

如果不显示数字,要显示字符,需要将原来的var更改一下类型就可以了。

var = IntVar()

代码语言:javascript
复制
# 改成下面字符变量类型
var = StringVar()
# 将原来的数字改成字符就可以了
Checkbutton(root, text="记住我", variable=var, onvalue="选中", offvalue="没选中",command=print_state).pack()

效果:

2.多个复选框

代码:

代码语言:javascript
复制
from tkinter import *
import tkinter.messagebox
#创建一个主窗口
root = Tk()
# 创建 宽400高250的窗口 x是小写的英文字符
root.geometry('400x250')
Label(root,text="选择你喜欢的水果?").pack()
# 通过设置变量,可以追踪查询按钮状态
var_1 = StringVar()
var_2 = StringVar()
var_3 = StringVar()
# 定义按钮的变化的一个反应
def print_state():
    tkinter.messagebox.showinfo('提示', var_1.get()+var_2.get()+var_3.get())
# c = Checkbutton(root, text="记住我", )
# c.pack()
# 简写方法
Checkbutton(root, text="苹果", variable=var_1,onvalue="苹果",offvalue="").pack()
Checkbutton(root, text="香蕉", variable=var_2, onvalue="香蕉", offvalue="").pack()
Checkbutton(root, text="梨", variable=var_3, onvalue="梨", offvalue="").pack()
Button(root,text="确定",command=print_state).pack()
# 程序一直循环,直到我们关闭窗口
root.mainloop()

效果:

解释:

这里的命令按钮绑定到一个单独的button按钮上了,选中对应的内容后,利用messagebox将选中的内容显示出来

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 叶子陪你玩编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.显示一个最简单的复选框。
  • 2.多个复选框
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档