新規作成  編集  Ruby-GNOME2 Project Website  ページ一覧  検索  更新履歴  編集履歴  RSS  ログイン

tips_key_pressed

何のキーが押されたのか調べる

Gtk::AccelGroup等でユーザが何のキーを入力したのか指定する際に、そのキー値を調べたいときがあります。

キー入力の定数値はGdk::Keyvalに定義されているので、rbbr等を使ってその中から自力で探し出すということもできなくはないですが、数も多いですし結構面倒くさいですよね。 そんな時には以下のスクリプトを使ってみてください。

実行したらお好みのキーをキーボードから入力します。そうするとそれに該当する数値とGdk::Keyvalの定数値をコンソールに出力してくれます。結構便利ですよ。

require 'gtk2'

window = Gtk::Window.new
window.add_events(Gdk::Event::KEY_PRESS)
window.add(Gtk::Label.new("Press Key!"))

window.signal_connect("key-press-event") do |w, e|
  p "#{e.keyval}, Gdk::Keyval::GDK_#{Gdk::Keyval.to_name(e.keyval)}"
end

window.set_default_size(100, 100).show_all

Gtk.main

そうそう、このスクリプトで得られた結果というのはあくまでも「実行した環境で得られた結果」でしかないということに注意してください。 キー配列が違う場合などは特にそうなのですが、環境によって取得結果が異なる場合があります。

更新日時:2006/07/02 14:35:19
キーワード:
参照:[Ruby-GNOME2 Tips]