Python 官方文档:入门教程 => 点击学习
目录tkinter获取复选框(Checkbutton)的值tkinter包的使用-Checkbutton总结tkinter获取复选框(Checkbutton)的值 定义GUI: fr
定义GUI:
from tkinter import *
# 初始化Tk()
myWindow = Tk()
# 设置标题
myWindow.title('python GUI Learning')
myWindow.geometry("%dx%d+%d+%d"%(400, 200, 200, 200))
# 创建Checkbutton
checkVar = StringVar(value="0")
check = Checkbutton(myWindow, text="Checkbutton test", variable=checkVar)
check.grid(row=0, column=0, sticky=W, padx=2 ,pady=5)
# 定义按钮点击事件
def button_Click(event=None):
print(checkVar.get())
# 创建两个按钮
b1 =Button(myWindow, text='click me' , relief='raised', width=8, height=1, command=button_Click)
b1.grid(row=0, column=2, sticky=W, padx=2 ,pady=10)
# 进入消息循环
myWindow.mainloop()
效果:
对复选框进行操作后,点击按钮输出信息:
下面的例子讲一下如何使用Checkbutton,它和Radiobutton的区别是,Radiobutton只可以选中一个,是单选按钮,Checkbutton可以同时选中多个,是多选按钮。
只选中Python:
只选中c++:
两个都选中:
都不选:
代码:
import tkinter as tk
window=tk.Tk()
window.title('my window')
window.geometry('200x100')
l=tk.Label(window,
bg='yellow',
width=20,
text='empty')
l.pack()
def print_selection():
if(var1.get()==1)&(var2.get()==0):
l.config(text='I love only Python ')
elif (var1.get()==0)& (var2.get()==1):
l.config(text='I love only C++')
elif (var1.get()==0)&(var2.get()==0):
l.config(text='I do not love either')
else:
l.config(text='I love both')
var1=tk.IntVar()
var2=tk.IntVar()
c1=tk.Checkbutton(window,
text='Python',
variable=var1,
onvalue=1,
offvalue=0,
command=print_selection
)
c1.pack()
c2=tk.Checkbutton(window,
text='C++',
variable=var2,
onvalue=1,
offvalue=0,
command=print_selection
)
c2.pack()
window.mainloop()
在Checkbutton()中参数onvalue
和前面讲的部件radiobutton
中的value相似, 当我们选中了这个checkbutton,onvalue
的值1就会放入到var1
中, 然后var1将其赋值给参数variable
,offvalue
用法相似,但是offvalue
是在没有选中这个checkbutton时,offvalue
的值1放入var1,然后赋值给参数variable
这是创建一个checkbutton部件,以此类推,可以创建多个checkbutton
在print_selection()中config
在之前的例子中就是将参数text
的值显示,这里的var1.get() == 1
就是前面所说的var1获得的变量onvalue=1
,var1.get() == 0
即是var1
获得的变量offvalu=0
同理var2
也是如此。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
--结束END--
本文标题: tkinter如何获取复选框(Checkbutton)的值
本文链接: https://lsjlt.com/news/178465.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0