2011-11-10 20 views
0

私はubuntuのruby/gtkにキオスクのGUIを書こうとしています。私はかなりRubyに慣れていますが、GUIを書くことには新しいし、Linuxではうまくいきません。GTK - 選択/ホバーのボタンを強調表示しない

私はタッチスクリーンを使用しています。私たち自身の画像をボタン用に使用しています。

​​

私の問題は、ボタンが押されているか、選択された(あるいは、これはタッチスクリーンとあまり関連性があるものの、ホバー)残っている場合、gtkのは彼らの周りに脂肪、正方形の境界を示すことです。明らかにgtkのプリライト/選択/アクティブライティングをボタンに適用しています。私は様々な方法でボタンのプロパティを変更しようとしましたが、私のテーマをハッキングしています。ハイライトの見た目を変更することはできますが、完全に取り除くことはできません。私のテーマを使ってハイライトの色を変えるのは簡単ですが、私が設定を削除しても、まだデフォルトが残っています。

誰かがそれを止める方法があるのか​​、それとも透明にするのか知っていますか?前もって感謝します!

答えて

0

Federicoが示唆したように、私は図面に干渉していましたが、これに対処する最も直接的な方法はボタンではなくイベントボックスを使用することでした。イベントボックスは単にボタンなどのクリックを受け入れますが、コードは次のようになり、ルビーではなど、ホバリング、選択に応答しない:

image = Gtk::Image.new("myfile.png") 
event_box = Gtk::EventBox.new.add(image) 
event_box.visible_window = false 
event_box.signal_connect("button_press_event") do 
    puts "Clicked." 
end 

これのほとんどは正確にボタンのようなものです。 * visible_window *メソッドは、ボタン画像の下にイベントボックスが表示されないようにします。

2

通常のGtkButtonの内側に置くのではなく、ボタン全体のイメージを正確に使用したいと思うように聞こえますが、ボタンのすべての通常の動作をそのまま使用します。

これを行う最も簡単な方法は、図面をオーバーライドすることです。 gtk2上にある場合は、 "expose-event"シグナルに接続し、そこに描画を行い、trueを返して、デフォルトのハンドラが実行されないようにします。あなたがgtk3上にいる場合は、 "描画"信号に接続して同じことをします。

+0

おもしろい - 以前はそれほど深刻ではありませんでしたが、試してみます。提案に感謝します。 – tekunokurato

関連する問題