目前选择的ttk :: notebook标签

时间:2014-01-03 20:00:28

标签: tcl tk ttk

我创建了一个带菜单和两个笔记本标签的窗口。在菜单中,我有一个“打开”按钮,它在笔记本标签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  

由于

1 个答案:

答案 0 :(得分:3)

您可以使用以下方式获取当前选定的标签索引:

.f.nb index current

这是documented on the manual page(它是索引方法和当前 tabid )。


要获取由特定选项卡管理的从属窗口小部件,请索引标签方法的结果。总的来说,你得到:

set currentSubwindow [lindex [.f.nb tabs] [.f.nb index current]]