我已经使用tk2combobox在R中创建了一个UI。
如果控件具有焦点,而我按下了“向下箭头”键,则它将扩展列表,而不是更改选择。 直到我向下箭头并单击“ enter”或用鼠标单击时,它才真正改变选择。
有什么办法可以使我立即使用箭头键更改选择?
答案 0 :(得分:0)
这是您在Tcl中的操作方式。我无法获得第一 按键工作,因为绑定中的交互以某种方式引起了 第二次按键消失。
package require Tk
proc ::lbarrowhandler { w } {
set currselidx [$w curselection]
regsub {\.popdown\.f\.l$} $w {} cb
$cb current $currselidx
return -code ok
}
set ::x cc
ttk::combobox .c -values {aa bb cc dd ee ff} -textvariable ::x
pack .c
bind ComboboxListbox <<ListboxSelect>> +[list ::lbarrowhandler %W]
编辑:
另一种可能性是将ttk :: spinbox与-values选项一起使用。 我不知道您的确切用例,但这会给用户带来有限的 值的选择。这里的缺点是完整列表 不可见。
set ::x cc
ttk::spinbox .sp -values {aa bb cc dd ee ff} -state readonly \
-wrap true -textvariable ::x
pack .sp
-state只读阻止用户输入任何内容,并且 -wrap选项将使箭头控件从头到尾换行, 反之亦然。