tcl tk绑定标签的虚拟事件

时间:2015-01-28 02:51:25

标签: tcl tk

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

以下是我想要做的事情的想法。显然,它不是真正的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
}

1 个答案:

答案 0 :(得分:3)

<<NotebookTabChanged>>虚拟事件中唯一有用的信息是它所讨论的ttk::notebook窗口小部件(%W替换,资本 W)。要找出新当前标签的哪个标签,您必须在活动中询问小部件。

$theNotebookWidget index current

虽然要获取与当前选项卡关联的窗口小部件的名称,但实际使用select方法而没有其他参数:

$theNotebookWidget select

来自the manual

  

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