[英]Checkbutton in tkinter is not storing values into variables
我只是在 tkinter 中做我的第一步,我一直在試圖弄清楚為什么這段代碼不起作用:
from tkinter import *
from tkinter import ttk
root = Tk()
spam = StringVar()
checkbutton = ttk.Checkbutton(
root, text="SPAM?", variable=spam, onvalue="Yes, SPAM!", offvalue="Boo, SPAM!")
checkbutton.pack()
print(spam.get())
root.mainloop()
變量spam
是空的,無論我的checkbutton
是被選中還是未選中。 查看示例和文檔也是一個死胡同。 為什么我的變量還是空的?
代替:
print(spam.get())
和:
checkbutton['command'] = lambda arg=spam: print(arg.get())
為了看到變量確實存儲了值。
問題是當您的print
被稱為spam.get()
等於""
為:
spam = StringVar()
等同於:
spam = StringVar(value="")
復選checkbutton
最初處於默認的非開啟、非關閉狀態(因為spam
既不是關閉也不是開啟值),但很難注意到ttk版本(如果有的話),替換:
checkbutton = ttk.Checkbutton(...
和:
checkbutton = Checkbutton(...
從使用默認Checkbutton Tkinter的,它更區別顯示。
另請注意,需要使用Checkbutton
才能調用spam.set(checkbutton['onvalue'])
或spam.set(checkbutton['offvalue'])
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.