在Python Tkinter中单击要显示为复选框的文本

在Python Tkinter中单击要显示为复选框的文本,python,user-interface,tkinter,checkbox,Python,User Interface,Tkinter,Checkbox,我正在用Python2.7编写GUI,并制作复选框。我想知道如何使文本在选中和取消选中时显示在复选框旁边。例如,当我选中复选框时,复选框旁边的文本应为“启用”,当我取消选中复选框时,文本应为“禁用”。这没有什么特别困难的。选中按钮可以在切换时调用命令。您可以使用小部件的configure方法更改命令内的文本 下面是一个简单的例子: import tkinter as tk def toggle(widget): variable = widget.cget("variable

我正在用Python2.7编写GUI,并制作复选框。我想知道如何使文本在选中和取消选中时显示在复选框旁边。例如,当我选中复选框时,复选框旁边的文本应为“启用”,当我取消选中复选框时,文本应为“禁用”。

这没有什么特别困难的。选中按钮可以在切换时调用命令。您可以使用小部件的
configure
方法更改命令内的文本

下面是一个简单的例子:

import tkinter as tk

def toggle(widget):
    variable = widget.cget("variable")
    value = int(widget.getvar(variable))
    label = "enable" if value else "disable"
    widget.configure(text=label)

root = tk.Tk()

for i in range(10):
    cb = tk.Checkbutton(root, text="disable")
    cb.configure(command=lambda widget=cb: toggle(widget))
    cb.pack(side="top")

root.mainloop()

您可以将相同的
StringVar
分配给
textvariable
variable
选项的
Checkbutton
,并设置
onvalue='enable'
offvalue='disable'
。然后,每当checkbutton的状态更改时,文本都会更改:

import tkinter as tk

root = tk.Tk()

var = tk.StringVar(value='disable')
tk.Checkbutton(root, textvariable=var, variable=var, onvalue='enable', offvalue='disable').pack()

root.mainloop()

这个答案比我的好。我为自己没有想到这一点而感到懊恼。