选项卡的tcl tk绑定虚拟事件

选项卡的tcl tk绑定虚拟事件,tcl,tk,Tcl,Tk,我正在尝试将一个事件绑定到tcl tk应用程序中的一个选项卡打开。 我已经将虚拟事件NoteBookTab更改为在选项卡更改时绑定到,但是我不知道如何获取所选的选项卡 下面是我想做什么的想法。显然,它不是真正的tcl tk代码 ttk::notebook .gui.tframe3.tpanedwindow4.notebook0 bind .gui.tframe3.tpanedwindow4.notebook0 <<NotebookTabChanged>> {GUITabO

我正在尝试将一个事件绑定到tcl tk应用程序中的一个选项卡打开。 我已经将虚拟事件NoteBookTab更改为在选项卡更改时绑定到,但是我不知道如何获取所选的选项卡

下面是我想做什么的想法。显然,它不是真正的tcl tk代码

ttk::notebook .gui.tframe3.tpanedwindow4.notebook0
bind .gui.tframe3.tpanedwindow4.notebook0 <<NotebookTabChanged>> {GUITabOpen %w}
ttk::frame .gui.tframe3.tpanedwindow4.notebook0.tframe1  -borderwidth {0}  -relief {flat}  -width {30}  -height {30}
...
proc GUITabOpen { {w 0} } {
if {##The tab selected is tframe1###} {
#do some action related to tframe1
}

虚拟事件中唯一有用的信息是ttk::notebook widget所说的%W替换,大写字母W。要了解新的当前选项卡是什么选项卡,您必须询问事件中的小部件

$theNotebookWidget index current
虽然要获取与当前选项卡关联的小部件的名称,您实际上使用了select方法,无需进一步的参数:

$theNotebookWidget select
发件人:

路径名选择?选项卡ID? 选择指定的选项卡。将显示关联的从属窗口,并且先前选择的窗口(如果不同)将取消映射。如果省略tabid,则返回当前选定窗格的小部件名称


非常感谢。这正是我想要的。