复选框,当我勾选方框时,var的值不会更改为1

时间:2016-12-01 14:20:45

标签: python variables checkbox tkinter

当我点击复选框时,我希望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?另外,如何在窗口启动时勾选框?

2 个答案:

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