tkinter-绑定所有';选择';将小部件的事件发送到回调

tkinter-绑定所有';选择';将小部件的事件发送到回调,tkinter,Tkinter,我对特金特很陌生。 我有一个GUI应用程序,包括单选按钮和其他小部件。 我的主模块控制器(采用松散的MVC设计)根据UI事件(禁用此项、启用另一项等)操纵我的视图。 在控制器的init中,创建视图后,我使用bind()函数将事件连接到我的ThisOrThatRadioButton(…)回调函数。它是有效的。。。用鼠标。 在使用应用程序时,我可以使用键盘(选项卡)导航到Radiobutton并选择按钮(空格),但随后-不会调用回调。 如何将整个“选定”事件绑定到回调? 或者我必须将几个(或多个)不

我对特金特很陌生。
我有一个GUI应用程序,包括单选按钮和其他小部件。
我的主模块控制器(采用松散的MVC设计)根据UI事件(禁用此项、启用另一项等)操纵我的视图。
在控制器的init中,创建视图后,我使用bind()函数将事件连接到我的ThisOrThatRadioButton(…)回调函数。它是有效的。。。用鼠标。
在使用应用程序时,我可以使用键盘(选项卡)导航到Radiobutton并选择按钮(空格),但随后-不会调用回调。
如何将整个“选定”事件绑定到回调?
或者我必须将几个(或多个)不同的事件绑定到同一个回调吗?
谢谢

编辑:
我使用小部件的bind()函数绑定,而不是命令=MyCallback,因为我希望小部件调用控制器类的函数,而不是视图类的函数:

self.view.parentFrame.myRadioB.bind("<ButtonRelease-1>", self.ControllerCallback)
self.view.parentFrame.myRadioB.bind(“,self.ControllerCallback)
小部件是View类的一部分,因此我认为它不知道(也不应该知道)控制器回调。

我是Python新手,我的观点是更通用的软件设计,所以我可能遗漏了一些明显的东西。

您没有说明要使用什么方法绑定(但我猜您绑定了一个鼠标事件),相反,您可以向每个按钮的构造函数添加一个
命令,然后添加任何更改选择的内容(鼠标或键盘)将调用您的回调,尽管没有
事件
对象:


您没有说明要使用什么方法绑定(但我猜您绑定了一个鼠标事件),相反,您可以向每个按钮的构造函数添加
命令
,然后任何更改选择(鼠标或键盘)的操作都将调用您的回调,尽管没有
事件
对象:


我找到了答案,感谢詹姆斯·肯特,他让我思考:
我的控制器模块不是绑定特定事件,而是通过widget.configure()设置命令
参见

我找到了答案,多亏了詹姆斯·肯特,他让我思考:
我的控制器模块不是绑定特定事件,而是通过widget.configure()设置命令
请参见

谢谢,我已经更新了我的问题(并格式化了,对不起)谢谢,我已经更新了我的问题(并格式化了,对不起)你可以让事件或命令调用任何你喜欢的函数,不同的是
bind
callbacks传递事件和
command
callbacks不,你使用事件做什么吗?我目前没有使用事件,只是简单的“selected”事件。问题是我不想让视图模块知道应用程序的“逻辑”,因此控制器绑定回调。我不希望视图具有“导入MyController”你可以让事件或命令调用任何你喜欢的函数,不同的是
bind
callbacks传递事件和
command
callbacks不,你使用事件做什么吗?我目前没有使用事件,只是简单的“selected”事件。问题是我不想让视图模块知道应用程序的“逻辑”,因此控制器绑定回调。我不希望视图具有“导入MyController”
from tkinter import *

def changed():
    print("Changed value")
master = Tk()

v = IntVar()

Radiobutton(master, text="One", variable=v, value=1, command=changed).pack(anchor=W)
Radiobutton(master, text="Two", variable=v, value=2, command=changed).pack(anchor=W)

master.mainloop()