Pergunta

Eu estou criando um aplicativo com painéis em Ruby / GTK. Quando os painéis são redimensionadas, eu preciso fazer alguma coisa. Mas eu não consigo descobrir o que sinalizar para uso. Eu acho que é 'accept_position' - mas não parece trabalho. Este é um aplicativo de exemplo que ilustra o meu 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 

A chamada 'accept_position' nunca é acionado. Alguma idéia do que está causando esse / como corrigi-lo?

Foi útil?

Solução

'accept_position' é um sinal de atalho de teclado, única emitido quando o painel é redimensionado usando o teclado.

Eu não sei Ruby, mas em C o sinal que você quer é 'notify::position'. notify é um sinal GObject que dispara sempre que uma propriedade muda o seu valor. Se você adicionar um detalhe , como position, para o nome do sinal ao conectá-lo, então ele só é acionado quando que específica propriedade muda o seu valor.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top