Ruby TK组合框选择不会消失

时间:2018-07-05 11:57:10

标签: ruby tk

这是我的代码:

combobox = Tk::Tile::Combobox.new (root) {
  values ["Folders","Files"]
  state "readonly"
  grid "row" => 1, "column" => 0, "sticky" => "w"
}

选择其中一个值后,我希望蓝色选择消失。

enter image description here

因此,我尝试使用此combobox.selection_clear,但它根本没有用。 如果我将小部件设置为“普通”而不是“只读”,那么它将起作用。但是在正常状态下,用户可以修改组合框的内容,我也想避免这种情况,因此也删除了蓝色选择。

我也尝试了TkSelection.clear(combobox),但也没有成功。

这是我的红宝石版本:

ruby 2.3.3p222 (2016-11-21 revision 56859) [x64-mingw32] 

1 个答案:

答案 0 :(得分:1)

我不知道这些方法是否无法正常工作,但我找到了解决方法。

我绑定了一个虚拟事件:

combobox.bind("<ComboboxSelected>") {combobox.selection_clear}

但这不会删除上面问题中所说的蓝色突出显示。

相反,如果我从组合框中移开焦点,然后将其设置在框架或其他类似这样的小部件上,则

combobox.bind("<ComboboxSelected>") {combobox.selection_clear; frame.focus} 

所以蓝色部分将消失。.上面的图片现在看起来像这样:

enter image description here

使用frame.focus更改焦点就可以解决问题。