python中通常我们写程序,显示结果和操作都是在终端区,如果要想实现一个有显示界面的程序那该怎样实现呢?python中有好几个库都可以实现,这个系列我们一起来学习如何使用python自带的tkinter库来实现。
本节课将要学习Checkbutton窗口部件,Checkbutton又叫复选框,那什么时候该用复选框呢?通常是在两个不同值之间选中或者不选中,一组按钮就可以实现很多值的一个选择。
例-1:登入网站是否要记住网站账号密码
例-2:选择你喜欢的动物。
今天我们组后就会实现一个可以选择自己喜欢的食物的一个案例。
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()
效果:
解释:
复选框从一个状态变化到另外一个状态就会触发命令,启动程序是没有选中的,这是用鼠标点击选中,在终端区就会打印出1,再点击取消选中就会打印0。之所以会出现这种情况是因为按钮默认选中是1,没选中是0。
如果我要实现选中是10,没选中是1该怎样做呢?
非常简单,添加两个参数就可以了。
Checkbutton(root, text="记住我", variable=var, onvalue=5, offvalue=1,command=print_state).pack()
解释:
onvalue表示选中的值,offvalue表示没选中的值。
效果:
如果不显示数字,要显示字符,需要将原来的var更改一下类型就可以了。
var = IntVar()
# 改成下面字符变量类型
var = StringVar()
# 将原来的数字改成字符就可以了
Checkbutton(root, text="记住我", variable=var, onvalue="选中", offvalue="没选中",command=print_state).pack()
效果:
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()
效果:
解释:
这里的命令按钮绑定到一个单独的button按钮上了,选中对应的内容后,利用messagebox将选中的内容显示出来
往期精彩回顾
【tkinter系列 第四课 Entry和Text窗口部件 】
长按二维码,加关注!叶子陪你玩
欢迎转载,转载请注明出处!
欢迎关注公众微信号:叶子陪你玩
分享自己的python编程学习之路
网友评论