我创建了一个带菜单和两个笔记本标签的窗口。在菜单中,我有一个“打开”按钮,它在笔记本标签1的文本小部件中打开了一个文件aaa.txt。问题是我想打开它不是在标签1中,而是在当前选中/显示/活动中笔记本选项卡(可以是选项卡1或选项卡2)。代码如下:
proc CommandOpen { } {
set f [open aaa.txt r]
set x [read $f]
.f.nb.f1.f11.t1 insert 1.0 $x
close $f
}
wm title .
wm geometry . 640x460
pack [frame .f] -fill both
pack [ttk::notebook .f.nb] -fill both
.f.nb add [frame .f.nb.f1] -text "tab1"
pack [frame .f.nb.f1.f11] -side top -fill both
pack [text .f.nb.f1.f11.t1 -bg white] -side left -fill both
.f.nb add [frame .f.nb.f2] -text "tab2"
pack [text .f.nb.f2.t1 -bg white] -side left -fill both
menu .mbar -borderwidth 1
. configure -menu .mbar
.mbar add cascade -label "File" -underline 0 -menu [menu .mbar.file -tearoff 0]
set mf .mbar.file
$mf add command -label "Open" -command CommandOpen -underline 0
由于
答案 0 :(得分:3)
您可以使用以下方式获取当前选定的标签索引:
.f.nb index current
这是documented on the manual page(它是索引方法和当前 tabid )。
要获取由特定选项卡管理的从属窗口小部件,请索引标签方法的结果。总的来说,你得到:
set currentSubwindow [lindex [.f.nb tabs] [.f.nb index current]]