2016-12-01 4 views
-1

チェックボックスをクリックすると、var1の値を1に変更します。ただし、関数内でvar1.get()を実行すると、私はvar1の値を取得し、それを印刷し、ボタンによって呼び出される機能を持っている0チェックボックスをチェックすると、ボックスのチェックボックスをオンにすると、1の値に変更されません。

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

として起動します。

​​

私は確信してボックスがチェックされているとき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

は、(1)最初のチェックボックスの値がない私がvar1.set場合は、[最小、完全かつ検証可能な例の作成方法] 1として表示されますが、ボックスはまだチェックされていません。コードは私が示したものと同じですので、問題がどこにあるのかはあまりわかりません... –

+1

@DominikPraski私が提案できるのは、あなたの問題を再現し、あなたの最後に追加する[mcve]質問。私は明日(それは私のタイムゾーンでは非常に遅いです)それを見てみましょう、または他の誰かがあなたを助けることができるかもしれません。 –

+0

大丈夫@PM 2Ring –

-1

私はプログラムがどこにあるのか見つけたと思う。私のプログラムは多くのウィンドウを持つformendで、tickboxはメインウィンドウ(ルート)にない。私は、この二次ウィンドウでそれらを必要とし、値は2番目のウィンドウで変更されません。

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

ブライアンは言った。このコードを既存の質問の末尾に移動するか、新しい質問をしてください。 BTWでは、Tkinterプログラムで 'Tk()'または '.mainloop()'を2回呼び出すべきではありません。 –

関連する問題