如何在 ttk 笔记本中切换选项卡时设置变量

How to set a variable while switching tabs in ttk notebook

我想在 tkk:notebook 中设置一个基于选项卡切换的变量值。是否有任何选项可以帮助我实现这一目标?

我想将默认选项卡的标志保持为 0,当用户切换另一个选项卡时将其标记为 1。

这是我的代码,但对我没有帮助:

ttk::notebook .top.d -padding 5
ttk::frame .top.d.f1;
ttk::frame .top.d.f2;
.top.d add .top.d.f2 -text "Tab A" -padding 5
.top.d add .top.d.f1 -text "TAB B" -padding 5
.top.d select .top.d.f1
ttk::notebook::enableTraversal .top.d
if {.top.d select .top.d.f2 } {
    set flag 2
}

谢谢

我感觉你是想获取当前标签页的索引,如果是这样,那么你可以使用:

.top.d index current

获取任意时间点tab的索引(索引从0开始)。


但是如果你真的想在标签切换时改变变量的值,你可以使用虚拟事件 <<NotebookTabChanged>>:

bind .top.d <<NotebookTabChanged>> {
    if {[.top.d select] == ".top.d.f2"} {set flag 2}
}

以上所有内容都在manual