技術メモ

後で同じ状況が起こった時に思い出せるように技術的なちょっとしたことをメモする。ベストな解ではない。



RubyでのGTK3+開発のTips


RubyでちょっとしたGUIのプログラムを書くとき、GTK3+を使うのは非常に便利である。
調べて大変だったTipsをメモがてらここに記録を残しておく。





 

ボタンにAltキーのショートカットをつける

Altを押すと下線が引かれたキーでボタンが押せるあれです。
Altアクセスキーとも呼ばれるらしい。

ボタンのlabelにアンダーバー(_)とアルファベットを続けて書いてset_use_underline(true)をするとそのアルファベットがショートカットキーになる。
上のコードでは’O’キーを割り当てているが、例えば’P’キーに割り当てたければlabel:"開く (O_pen)"とすれば良い。
ショートカットキーを押すとボタンが押され、clickedイベントが発生する。





 

コードからイベントを発生させる

GUIのコンポーネントを操作するのではなく、コードから直接イベントを発生させるときにはsingal_emitメソッドを用いる。

上記のコードの場合、button.signal_emit(:clicked)によってbuttonにclickedイベントが発生し、button.signal_connect(:clicked)で定義された# clickedイベント発生時の処理が実行される。
これは普通にボタンをクリックしたときと同様の効果である。





 

キーをバインドする(キー押下イベントを受け取る)

AltアクセスキーではAltキーを押下してからキーを押さなければならないが、特殊キー(エンターキーなど)をバインディングしたかったりAltを押さずにキー押下をイベントを受け取りたいことはある。
そういうときにはkey-press-eventを拾えば良い。

上記コードで、e.stringとすることでキーの文字を取得することができe.keyvalでキーの番号を取得できる。
keyvalは特殊キーを扱うときに使うと良い。





 

FileChooserDialogでディレクトリを指定する

FileChooserDialog(ファイルピッカーみたいなやつ)でディレクトリ(フォルダ)を指定する場合は以下のように書く。





 

画像を貼る

画像を表示するウィジェットに画像をスケーリングして貼る場合は以下のようになる。





 

ボタンを有効/無効にする

今更説明の必要はないかもしれないが、ボタンを有効化/無効化するにはsensitiveプロパティにboolを設定する。
trueのときが有効でfalseが無効である。



タグ: ,
投稿日: 2018年7月30日





コメントを残す

回答をお約束することは出来ませんので予めご了承ください。
コメントは承認されると表示されるようになります。
コメントを送信する前に「私はロボットではありません」にチェックを入れて下さい。