如何使用 Tk/Tcl 中的复选按钮设置 on/off 值

How to set on/off value with checkbutton in Tk/Tcl

我目前正在学习tkinter包中widgets的使用。并且不确定 on/off 值在复选按钮小部件中的工作方式。

我写的代码如下:

from tkinter import *
from tkinter import ttk

root = Tk()
root.title("Checkbutton")

mainframe = ttk.Frame(root, padding="3 3 12 12")
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)

measureSystem = StringVar()
cmd1 = lambda *args: print(str(measureSystem) + ' selected')
check = ttk.Checkbutton(mainframe, text='Use Metric',
                        command=cmd1, variable=measureSystem,
                        onvalue='metric', offvalue='imperial')

然而,当我选中和取消选中复选按钮时,无论复选按钮处于何种状态,返回的内容如下:

PY_VAR1 selected

我知道 onvalueoffvalue 应该存储在 measureSystem变量取决于复选按钮的状态。

为什么这里不是这种情况?

尝试更改:

str(measureSystem)

至:

str(measureSystem.get())

as StringVar 使用 .set().get() 访问值。