Domanda

Sto creando un applicazione con lastre in Ruby / Gtk. Quando le lastre vengono ridimensionati, ho bisogno di fare alcune cose. Ma non riesco a capire quale segnale da utilizzare. Penso che sia 'accept_position' - ma non sembra funzionare. Si tratta di un'applicazione di esempio che illustra il mio problema ...

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

La chiamata 'accept_position' non viene mai licenziato. Qualsiasi idea di che cosa sta causando questo / come rimediare?

È stato utile?

Soluzione

'accept_position' è un segnale scorciatoia, solo emesso quando il pannello viene ridimensionato utilizzando la tastiera.

Non lo so Ruby, ma in C il segnale che si desidera è 'notify::position'. notify è un segnale GObject che spara ogni volta che una proprietà cambia il suo valore. Se si aggiunge un dettaglio , come ad esempio position, per il nome del segnale quando lo si collega, allora solo i fuochi quando che specifica proprietà cambia il suo valore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top