前言

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

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

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

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

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

【tkinter系列 第五课 Checkbutton窗口部件 】_复选框_02

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

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

代码:

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()

效果:

【tkinter系列 第五课 Checkbutton窗口部件 】_关闭窗口_03

解释:

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

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

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

Checkbutton(root, text="记住我", variable=var, onvalue=5, offvalue=1,command=print_state).pack()

解释:

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

效果:

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

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

var = IntVar()

# 改成下面字符变量类型

var = StringVar()

# 将原来的数字改成字符就可以了

Checkbutton(root, text="记住我", variable=var, onvalue="选中", offvalue="没选中",command=print_state).pack()

效果:【tkinter系列 第五课 Checkbutton窗口部件 】_关闭窗口_05

2.多个复选框

代码:

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()

效果:【tkinter系列 第五课 Checkbutton窗口部件 】_python_06

解释:

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


长按二维码,

加关注!

叶子陪你玩

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