如何在 Ruby Tk 中绑定关键事件

Lan*_*ane 2 ruby tk-toolkit

我想在控制台中显示我在 Tk 窗口中按下的内容。

我写了以下代码:

require 'tk'

root = TkRoot.new
entry = TkEntry.new(root) do
  pack
end

entry.bind("Key", proc {p "key pressed"})
Tk.mainloop
Run Code Online (Sandbox Code Playgroud)

key pressed如果我按任意键,它会显示。

但我想显示我按下的键,而不是一个常量字符串。谁能帮我?

saw*_*awa 5

也许我。将绑定更改为:

entry.bind("Key", proc{|k| p "key pressed #{k}"}, "%K")
Run Code Online (Sandbox Code Playgroud)

根据格式,使用%A(ASCII 码)、%K(键符名称)或%N (键符编号)作为最后一个参数。