当我点击复选框时,我希望var1
的值更改为1.但是,当我在函数中执行var1.get()
时,值始终为0。
var1 = IntVar()
tickbox_1 = Checkbutton(custom, text=label_1, variable=var1,)
tickbox_1.grid(row=2,column=1)
我有一个按钮调用的函数,它获取var1
的值并打印出来。
def custom_create():
print(var1.get())
当勾选方框时,我可以做些什么来确保var1
变为1?另外,如何在窗口启动时勾选框?
答案 0 :(得分:0)
您的代码基本上是正确的,因此问题的原因必须是您未向我们展示的其他代码。
FWIW,这是一个小型的工作演示。
import tkinter as tk
root = tk.Tk()
var1 = tk.IntVar()
var1.set(1)
tickbox_1 = tk.Checkbutton(root, text='Tick_1', variable=var1)
tickbox_1.grid(row=0, column=0)
def callback():
print(var1.get())
b = tk.Button(root, text="Show", command=callback)
b.grid(row=0, column=1)
root.mainloop()
行var1.set(1)
使Checkbox以勾选状态开始。
答案 1 :(得分:-1)
我想我找到了程序所在的位置,我的程序是用许多窗口进行修改而且复选框不在主窗口(root)中。我希望它们在这个辅助窗口中,并且值不会在第二个窗口中更改。
from tkinter import *
root = Tk()
def open_custom_gui():
custom_gui()
b = Button(root,command=open_custom_gui)
b.grid(row=1,column=0)
def custom_gui():
def getinfo():
print(var1.get())
custom= Tk()
var1 = IntVar()
tickbox_1 = Checkbutton(custom,text='TEST',
variable=var1,)
tickbox_1.grid(row=0,column=0)
b = Button(custom,command=getinfo)
b.grid(row=1,column=0)
custom.mainloop()
root.mainloop()