簡體   English   中英

tkinter 中的復選按鈕未將值存儲到變量中

[英]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既不是關閉也不是開啟值),但很難注意到版本(如果有的話),替換:

checkbutton = ttk.Checkbutton(...

和:

checkbutton = Checkbutton(...

從使用默認Checkbutton ,它更區別顯示。

另請注意,需要使用Checkbutton才能調用spam.set(checkbutton['onvalue'])spam.set(checkbutton['offvalue'])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM