1

我有一个旧的 TCL 应用程序,它的菜单没有显示所有条目。

如何创建多列菜单或滚动菜单,以便可以看到所有菜单条目?

这是TCL v8.0

这是一个gui。

我正在查看的代码片段是:

#
# Setup the folder Menu
#
menubutton $w.folder -text Folder -menu $w.folder.menu
menu $w.folder.menu -tearoff 0
$w.folder.menu add command -label "New"      -command createNewFolder -state disabled
$w.folder.menu add command -label "Open"     -command openFolder 
$w.folder.menu add command -label "Delete"   -command deleteFolder -state disabled
$w.folder.menu add command -label "Printer Setup" -command selectPrinter -state  disabled
$w.folder.menu add command -label "Quit"     -command xqmQuit 
$w.folder.menu add separator
foreach queue $privateGlobals(folderList) {
   $w.folder.menu add command -label "$queue" -command [list openFolder "$queue"]
}

发生的事情是,在 foreach 循环中创建了很多条目,但我只能看到 60 或 80 个条目中的大约 46 个。

我很长时间没有做过 TCL,但我没有在菜单小部件中看到任何明显的选项来做我想做的事。

4

1 回答 1

2

您可以使用-columnbreak 值选项。

set i 0
foreach queue $privateGlobals(folderList) {
   $w.folder.menu add command -label "$queue" -command [list openFolder "$queue"] -columnbreak [expr $i % 10 == 0]
   incr i
}
于 2012-12-04T19:48:54.663 回答