2015-05-03 93 views
-1

我是Tkinter的新手,我希望Checkbutton在檢查時打印一個字符串,並在未選中時打印一個字符串。但是,self.value總是返回PY_VAR0是否勾選框。Tkinter上的Checkbutton值不會變化

from tkinter import * 

class New: 
    def __init__(self, master): 
     value = StringVar() 
     self.value = value 
     frame = Frame(master) 

     self.c = Checkbutton(
      master, text="Expand", variable=value,onvalue="Yes", 
      offvalue="No",command=self.test) 
     self.c.pack(side=LEFT) 

    def test(self): 
     if self.value == "Yes": 
      print("Yes!") 
     if self.value == "No": 
      print("Not!") 
     else: 
      print(self.value) 

root = Tk() 
app = New(root) 

root.mainloop() 

回答

1

嘗試使用的

if self.value.get() == "Yes": 

代替

if self.value == "Yes": 

到處都一樣,你試圖訪問checkbutton的價值。

而且,這將是更好地使用

if self.value.get() == "Yes": 
     print("Yes!") 
    else: 
     if self.value.get() == "No": 
      print("Not!") 
     else: 
      print(self.value.get()) 

因爲使用您的版本將打印值的兩倍,如果爲「是」。

相關問題