1

我在 CheckButton 上附加了一个事件,通过左键单击来更改项目的状态,预期的结果是状态切换。这意味着如果选中了复选按钮,则取消选择它,如果取消选择,则选择它。下面是代码:

def onLeftClick(event):
if event.widget.select()==True and event.widget['state']=='normal':
    event.widget.deselect()
elif event.widget.deselect()==True and event.widget['state']=='normal':
    event.widget.select()
4

1 回答 1

1

我不知道 tk,但从上下文来看,您似乎正在使用selectdeselect查询小部件的当前状态并设置小部件的当前状态,这似乎是错误的。

根据http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/checkbutton.html有一个功能toggle让我觉得

def onLeftClick(event):

    if event.widget['state']=='normal':
       event.widget.toggle()

会做你想做的。

于 2013-10-02T06:04:46.667 回答