如何在Tk / Tcl中使用checkbutton设置开/关值

时间:2018-01-04 04:29:08

标签: python tkinter tcl tk

我目前正在学习tkinter包中小部件的使用。并且不确定开启/关闭值如何在checkbutton小部件中起作用。

我的书面代码如下:

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

我了解 onvalue offvalue 应该存储在 measureSystem 变量中,具体取决于检查按钮的状态。

为什么不是这种情况?

1 个答案:

答案 0 :(得分:2)

尝试更改:

str(measureSystem)

为:

str(measureSystem.get())

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