2017-08-16 398 views
-1

這是我的代碼:Tkinter的設置默認複選框被選中返回值「選中」

master = Tk() 
var1 = IntVar(master) 
var1.set(1) 
Checkbutton(master, text = 'check', variable = var1) 
Button(text = 'submit', command = master.quit') 
check = var1.get() 

它設置默認爲被檢查,但即使我取消它的圖形用戶界面,並點擊提交時,支票值仍爲1.

爲什麼取消選中複選框的動作未被註冊?

+0

此代碼不會運行。如果你要發佈代碼,它需要是可運行的代碼來說明問題。 –

回答

0

首先代碼喲已經表明我們不會因爲幾個原因而工作。

你有一個'就在master.quit之後,你也試圖創建一個按鈕,而不必將它分配給一個窗口或框架。您尚未使用pack()grid()place()將窗口小部件放入窗口中。如果是IntVar(),則不需要指定主內部的值。

您認爲IntVar()的值沒有變化的原因很可能是因爲您在實例化程序時將IntVar()的值賦予了變量check

通過您向我們顯示的代碼,我們沒有任何更改或更新check的值。

相反,你應該使用一些可以調用的東西來檢查var1的當前值,就像函數一樣。

下面是一個簡單的程序,顯示每次檢查或取消選中該框時會發生的情況。

import tkinter as tk 

master = tk.Tk() 
var1 = tk.IntVar() 
var1.set(1) 

tk.Checkbutton(master, text = 'check', variable = var1).pack() 

def print_var1(): 
    print(var1.get()) 

tk.Button(master, text = "Print Var1", command = print_var1).pack() 
tk.Button(master, text = 'Close', command = lambda: master.destroy()).pack() 

master.mainloop()