ruby-****@sourc*****
ruby-****@sourc*****
2003年 10月 12日 (日) 22:07:08 JST
------------------------- REMOTE_ADDR = 218.231.205.39 REMOTE_HOST = URL = http://ruby-gnome2.sourceforge.jp/ja/?tips_key_pressed ------------------------- = 何のキーが押されたのか調べる Gtk::AccelGroup等でユーザが何のキーを入力したのか指定する際に、そのキー値を調べたいときがあります。 キー入力の定数値はGdk::Keyvalに定義されているので、rbbr等を使ってその中から自力で探し出すということもできなくはないですが、数も多いですし結構面倒くさいですよね。 そんな時には以下のスクリプトを使ってみてください。 実行したらお好みのキーをキーボードから入力します。そうするとそれに該当する数値とGdk::Keyvalの定数値をコンソールに出力してくれます。結構便利ですよ。 require 'gtk2' Gtk.init 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 そうそう、このスクリプトで得られた結果というのはあくまでも「実行した環境で得られた結果」でしかないということに注意してください。 - マルチプラットフォーム(MS WindowsとLinux等)で動作することを想定した場合、両方の環境で取得する文字列が異なる場合があります(キー配列が違う場合などは特に)。 + キー配列が違う場合などは特にそうなのですが、環境によって取得する文字列が異なる場合があります。 == ChangeLog :2003-10-12 ((<むとう>)) Initial Release