tcl / tk中的下拉菜单按钮

时间:2015-11-30 07:51:48

标签: user-interface tcl tk

有没有办法使用Tcl / TK创建一个下拉工具栏按钮(如MS Word中的粘贴按钮?)。我搜索了很多但没有找到任何内容。任何帮助都会很明显。

1 个答案:

答案 0 :(得分:0)

如果我已经了解您正在谈论的Word中的哪个UI元素,那么您可能希望使用menubuttonmenu,可能还会使用radiobutton个条目。 (或者可能是ttk::menubuttonmenu。)现在,如果您正在使用它做一些非常简单的事情,那么您可以使用tk_optionMenu作为组合这些命令的方法,但这只是一个简单的程序;如果你正在做一些复杂的菜单,可能更容易自己编写,或者至少可以获得tk_optionMenu的代码并自定义它的工作方式。

tk_optionMenu的{​​{3}}不是很长;我将在此处粘贴其非评论部分:

proc ::tk_optionMenu {w varName firstValue args} {
    upvar #0 $varName var

    if {![info exists var]} {
        set var $firstValue
    }
    menubutton $w -textvariable $varName -indicatoron 1 -menu $w.menu \
            -relief raised -highlightthickness 1 -anchor c \
            -direction flush
    menu $w.menu -tearoff 0
    $w.menu add radiobutton -label $firstValue -variable $varName
    foreach i $args {
        $w.menu add radiobutton -label $i -variable $varName
    }
    return $w.menu
}

您可能希望关注menubuttonmenu如何相互关联。 ttk::menubutton 主要是 menubutton的替代品,除了不同的外观配置选项。