我有一个旧的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,但我没有在菜单小部件中看到任何明显的选项来做我想做的事。
答案 0 :(得分:2)
您可以使用-columnbreak value选项。
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
}