r - tk2combobox:如何控制对向上/向下箭头键的响应
问题描述
我在 R 中有一个使用 tk2combobox 的 UI。
如果控件具有焦点,并且我按下“向下箭头”键,它会展开列表,而不是更改选择。它实际上并没有改变选择,直到我向下箭头并点击“输入”或用鼠标单击。
有什么方法可以让它立即使用箭头键更改选择?
解决方案
这就是你在 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 readonly 阻止用户输入任何内容,而 -wrap 选项将使箭头控件从头到尾环绕,反之亦然。
推荐阅读
- python - 使用带有 jinja 宏的 form.csrf_token 不会隐藏 csrf_token 字段
- kotlin - 在 Intellij 中的编辑器和 Kotlin REPL 之间共享代码
- python - 计算器跳到结束循环?
- ios - Core Data 不支持自定义类型吗?我应该用什么来存储货币?
- nginx - 通过filebeat发送时如何使用nginx的主机覆盖logstash的主机信息?
- php - Docker nginx php权限问题
- javascript - 可以合并两个音频“base64data”字符串来创建一个独特的音频文件吗?
- javascript - 如何在javascript中的阿拉伯数字之间有分隔符?
- python - OpenCV - Python 库
- latex - Is it possible to format Chemnum to align the replacement text right?