1

Ruby/Gtk でペインを持つアプリケーションを作成しています。ペインのサイズが変更されたら、いくつかの作業を行う必要があります。しかし、どの信号を使用すればよいかわかりません。「accept_position」だと思いますが、うまくいかないようです。これは私の問題を説明するサンプルアプリです...

#!/usr/bin/env ruby

require 'gtk2'

window = Gtk::Window.new(Gtk::Window::TOPLEVEL)
window.set_title  "Panes"
window.border_width = 10
window.set_size_request(225, 150)
window.signal_connect('destroy') { Gtk.main_quit }
window.signal_connect('delete_event') { false }

button1 = Gtk::Button.new("Resize")
button2 = Gtk::Button.new("Me")

button1.signal_connect( "clicked" ) { window.destroy }
button2.signal_connect( "clicked" ) { window.destroy }

paned = Gtk::VPaned.new
paned.add1(button1)
paned.add2(button2)

paned.signal_connect( "accept_position" ) { 
 puts "hello"
 false
}

window.add(paned)
window.show_all
Gtk.main 

「accept_position」呼び出しは決して発生しません。これを引き起こしている原因/修正方法はありますか?

4

1 に答える 1

3

'accept_position'キーバインド信号で、キーボードを使用してペインのサイズが変更された場合にのみ発行されます。

Ruby はわかりませんが、C で必要なシグナルは'notify::position'. プロパティがその値を変更するたびに発生notifyするシグナルです。接続時に信号名になどの詳細GObjectを追加すると、その特定のプロパティがその値を変更したときにのみ発生します。position

于 2009-11-11T20:51:32.460 に答える