首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将菜单值传递给子菜单

如何将菜单值传递给子菜单
EN

Stack Overflow用户
提问于 2020-11-19 09:25:41
回答 1查看 70关注 0票数 0
代码语言:javascript
复制
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。

如何做到这一点?,即它应该将菜单值传递给子菜单值

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-19 09:55:10

当您在这样的多个级联条目中使用单个菜单时,您无法区分它们。要区分它们,您应该创建三次子菜单,或者通过(如下所示)绑定回调,或者为每个子菜单绑定自己的-postcommand

代码语言:javascript
复制
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
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64908773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档