【问题标题】:How to set on/off value with checkbutton in Tk/Tcl如何使用 Tk/Tcl 中的复选按钮设置开/关值
【发布时间】:2018-01-04 04:29:08
【问题描述】:

我目前正在学习 tkinter 包中小部件的用法。并且不确定在检查按钮小部件中的开/关值如何工作。

我写的代码如下:

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 变量中,具体取决于检查按钮的状态。

为什么这里不是这样?

【问题讨论】:

    标签: python tkinter tcl tk


    【解决方案1】:

    尝试改变:

    str(measureSystem)
    

    到:

    str(measureSystem.get())
    

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

    【讨论】:

      最近更新 更多