如何使用 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
我知道 onvalue 和 offvalue 应该存储在 measureSystem变量取决于复选按钮的状态。
为什么这里不是这种情况?
尝试更改:
str(measureSystem)
至:
str(measureSystem.get())
as StringVar
使用 .set()
和 .get()
访问值。
我目前正在学习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
我知道 onvalue 和 offvalue 应该存储在 measureSystem变量取决于复选按钮的状态。
为什么这里不是这种情况?
尝试更改:
str(measureSystem)
至:
str(measureSystem.get())
as StringVar
使用 .set()
和 .get()
访问值。