Frage

Ich bin eine Anwendung mit Scheiben in Ruby / Gtk zu schaffen. Wenn die Scheiben der Größe verändert werden, muss ich ein paar Sachen tun. Aber ich kann nicht herausfinden, was die Verwendung signalisieren. Ich denke, es ist ‚accept_position‘ - aber es scheint nicht zu arbeiten. Dies ist eine Beispielanwendung, die mein Problem stellt ...

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

Der ‚accept_position‘ Anruf wird nie ausgelöst. Jede Idee, was verursacht diese / wie man es beheben?

War es hilfreich?

Lösung

'accept_position' ist ein Keybinding Signal nur ausgegeben, wenn die Scheibe der Größe verändert wird über die Tastatur.

Ich weiß nicht, Rubin, aber in C das Signal wollen Sie ist 'notify::position'. notify ist ein GObject Signal, das ausgelöst wird, wenn ein Objekt seinen Wert ändert. Wenn Sie ein Detail hinzufügen , wie position, zu dem Signalnamen beim Verbinden ihnen, dann nur er feuert, wenn , dass bestimmt Eigenschaft seinen Wert ändert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top