menubutton .mb -text Example -menu .mb.menu
pack .mb -padx 10 -pady 10
set m [menu .mb.menu -tearoff 1]
$m add cascade -label A -menu $m.sub1
$m add cascade -label B -menu $m.sub1
$m add cascade -label C -menu $m.sub1
set m2 [menu $m.sub1 -tearoff 0]
$m2 add radio -label x -variable fruit -value apple
$m2 add radio -label y -variable fruit -value orange
$m2 add radio -label z -variable fruit -value kiwi 让我们说有人点击B然后点击z,我想打印Bz。让我们说有人点击A然后点击y,我想打印Ay。
如何做到这一点?,即它应该将菜单值传递给子菜单值
发布于 2020-11-19 09:55:10
当您在这样的多个级联条目中使用单个菜单时,您无法区分它们。要区分它们,您应该创建三次子菜单,或者通过(如下所示)绑定回调,或者为每个子菜单绑定自己的-postcommand。
menubutton .mb -text Example -menu .mb.menu
pack .mb -padx 10 -pady 10
set m [menu .mb.menu -tearoff 1]
foreach cmd {sub1 sub2 sub3} tag {A B C} {
set m2 [menu $m.$cmd -tearoff 0]
foreach label {x y z} value {apple orange kiwi} {
$m2 add radio -label $label -variable fruit -value $value \
-command [list puts $tag$label]
}
# I prefer to add the cascades after making the submenu
$m add cascade -label $tag -menu $m2
}https://stackoverflow.com/questions/64908773
复制相似问题