2017-11-24 26 views
0

私はRubyのTkウィジェットでキーシーケンスControl_L + Upをバインドするつもりです。より明確には、 "Control_Left"と "Arrow-Up"が一緒に押されたときに、procを実行させたい。Ruby Tkでキーシーケンスをバインドする方法は?

今まで私は成功していませんでしたが、私はTclTk、Python、Perlのドキュメントを見て多くの組み合わせを試みましたが、方法が見つからなかった。

それは

widget.bind("Control_L Up", proc { 
    puts "-----> sequence ok " 
}) 

P.S.に似たものでなければなりません1つずつ、Control_LUpという2つのイベントが確実にキャッチされます。

+0

私は配列 'が結合することを発見しました。 {puts "hello"} 'は' wish'シェルでそれを作ります。残念ながら、Rubyでは同じキーシーケンスには対応していません。 –

答えて

0

私はそれを見つけたが、将来的にそれを必要とするかもしれない誰に、これは

require 'tk' 
root = TkRoot.new() 
root.minsize [400, 300] 
root.geometry "+200+200" 
root.bind('Control-Key-Up', proc { puts "presssed Control + Up"; }) 
Tk.mainloop() 

がTclTkドキュメントに記載されているように、(1)それが形'Control Key Up'でも、働くことを守って作業スニペットです。しかし、デフォルトのTk構文である'<Control-Key-Up>'と書くと、うまくいきません。

関連する問題