Question

Je crée une application avec des vitres en Ruby / Gtk. Lorsque les panneaux sont redimensionnées, je dois faire des choses. Mais je ne peux pas comprendre quel signal à utiliser. Je pense qu'il est « accept_position » - mais il ne semble pas fonctionner. Ceci est un exemple d'application qui illustre mon problème ...

#!/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 

L'appel « de accept_position » est jamais tiré. Toute idée de ce qui l'origine de ce / comment y remédier?

Était-ce utile?

La solution

'accept_position' est un signal de raccourci clavier, seulement émis lorsque le volet est redimensionnée à l'aide du clavier.

Je ne sais pas Ruby, mais en C le signal que vous voulez est 'notify::position'. notify est un signal de GObject qui déclenche chaque fois qu'une propriété change de valeur. Si vous ajoutez un voir , comme position, au nom du signal lors de la connexion, il ne se déclenche que lorsque que spécifique propriété change sa valeur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top