手动触发ttk notebook tab change事件

Manually triggering the ttk notebook tab change event

我说的是 <<NotebookTabChanged>> 可以绑定 ttk.Notebook 的事件。假设我有:

def tabChanged(self, event):
    print "tab changed"

并说我想手动触发这个方法。我实际上的意思是,假设我有一个基本的选项卡式 GUI,并且有一个开始按钮,当您单击它时可以绘制图表。每个选项卡上都有绘图,当您更改选项卡时,会触发 <<NotebookTabChanged>>,这是 ttk.Notebook 自动创建的事件。对于这种情况,我已经有了 self.tabChanged 方法。我想做的是,我想让我的开始按钮触发这个事件,这样我就不必为按钮创建一个新方法,它会做与 self.tabChanged 完全相同的事情。所以我需要一种通过单击按钮触发事件的方法,但请记住,该事件是 ttk.Notebook 自己的事件,显然它被设计用于选项卡,而不是按钮。有没有办法通过单击按钮手动触发 <<NotebookTabChanged>>

您可以使用 event_generate:

生成虚拟事件(例如:以 <<>> 开始和结束的事件)
self.the_notebook.event_generate("<<NotebookTabChanged>>")