我是一个新手,学习使用小部件"checkbutton"。我遇到了一个问题,无论我选择什么,代码都打印0.
想要的:
- 如果选中,打印1
- 如果未选中则打印0
兆瓦h1> div class="one_answers">
在将var_cb1
设置为0之后,您几乎立即调用get
,然后打印该值。您不需要等待复选按钮改变状态并然后打印值。定义一个函数,当CheckButton
改变状态时调用,然后get
改变那里的值
import tkinter as tk
def on_update(var):
print('The selected value is: ', var.get()) # get the new value
win = tk.Tk()
win.title('My Window')
win.geometry('100x100')
l = tk.Label(win, width=20, text='MultipleReplace')
l.pack()
var_cb1 = tk.IntVar()
var_cb1.set(0)
cb1 = tk.Checkbutton(
win,
text='Yes',
variable=var_cb1,
onvalue=1,
offvalue=0,
# call 'on_update', using a lambda to pass in the 'var_cb1' variable
command=lambda var=var_cb1: on_update(var)
)
cb1.pack(side=tk.TOP)
win.mainloop()