1

すべてのエントリが表示されないメニューを持つ古い TCL アプリがあります。

複数列メニューまたはスクロール メニューを作成して、すべてのメニュー エントリが表示されるようにするにはどうすればよいですか?

これはTCL v8.0です

これはギー用です。

私が見ているコードフラグメントは次のとおりです。

#
# 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 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
}
于 2012-12-04T19:48:54.663 に答える