首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >tk2combobox:如何控制对上/下箭头键的响应

tk2combobox:如何控制对上/下箭头键的响应
EN

Stack Overflow用户
提问于 2018-08-17 23:47:17
回答 1查看 52关注 0票数 0

我在R中有一个使用tk2combobox的UI。

如果控件具有焦点,并且我按下了“向下箭头”键,它将扩展列表,而不是更改选择。它实际上不会改变选择,直到我向下箭头并点击“回车”或用鼠标点击。

有没有办法让它立即用箭头键改变选择?

EN

回答 1

Stack Overflow用户

发布于 2018-08-20 02:07:48

这就是你在Tcl中如何做的。我无法让第一个按键正常工作,因为绑定中的交互以某种方式导致第二个按键消失。

代码语言:javascript
复制
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。我不知道您的确切用例,但这将为用户提供有限的值选择。这里的缺点是完整的列表是不可见的。

代码语言:javascript
复制
set ::x cc
ttk::spinbox .sp -values {aa bb cc dd ee ff} -state readonly \
     -wrap true -textvariable ::x
pack .sp

-state只读阻止用户键入任何内容,而-wrap选项将使箭头控件从末尾换行到开头,反之亦然。

参考资料:http://www.tcl-lang.org/man/tcl/TkCmd/ttk_spinbox.htm

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51898921

复制
相关文章

相似问题

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