我在R中有一个使用tk2combobox的UI。
如果控件具有焦点,并且我按下了“向下箭头”键,它将扩展列表,而不是更改选择。它实际上不会改变选择,直到我向下箭头并点击“回车”或用鼠标点击。
有没有办法让它立即用箭头键改变选择?
发布于 2018-08-20 02:07:48
这就是你在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]
编辑:
另一种可能是使用带有-values选项的ttk::spinbox。我不知道您的确切用例,但这将为用户提供有限的值选择。这里的缺点是完整的列表是不可见的。
set ::x cc
ttk::spinbox .sp -values {aa bb cc dd ee ff} -state readonly \
-wrap true -textvariable ::x
pack .sp
-state只读阻止用户键入任何内容,而-wrap选项将使箭头控件从末尾换行到开头,反之亦然。
https://stackoverflow.com/questions/51898921
复制相似问题