2016-12-01 56 views
-1

当我点击复选框时,我希望var1的值更改为1.但是,当我在某个函数中做var1.get()值始终出现为0复选框,当我勾选该框的var值不会更改为1

var1 = IntVar() 
tickbox_1 = Checkbutton(custom, text=label_1, variable=var1,) 
tickbox_1.grid(row=2,column=1) 

我有一个由一个按钮,得到的var1值并打印它调用的函数。

​​

有什么我可以做的,以确保var1成为1时,该框被勾选?另外,如何在窗口启动时打勾?

+1

请阅读[如何创建一个最小的,完整的和可验证的实施例](http://stackoverflow.com/help/mcve) –

回答

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

线​​使复选框开始了在选中状态。

+0

当我var1.set(1)所述第一复选框的值的确显示为1,但该框仍未勾选。该代码是相同的,因为我表现出这样的IM不太清楚问题出在哪里可以位于... –

+1

@DominikPraski所有我可以建议是,为您创造一个[MCVE]再现您的问题,并把它添加到年底你题。我明天会看看它(我的时区很晚),或者其他人可能同时帮助你。 –

+0

好的,谢谢@PM 2Ring –

-1

我想我找到了程序规定在那里,我的程序formend有许多窗口和tickboxes不在主窗口(根)。我希望他们在这个辅助窗口中,并且值不会在第二个窗口中更改。

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() 
+0

这似乎不是一个答案。请不要试图通过发布信息来更新您的问题,就好像它是一个答案。 –

+0

布赖恩说什么。将此代码移至现有问题的末尾,或者提出新问题。顺便说一句,你应该在Tkinter程序中不要调用'Tk()'或'.mainloop()'两次。 –

相关问题