سؤال

أنا أخلق تطبيق مع الأجزاء في روبي / GTK. عندما يتم تغيير حجم الأجزاء، أحتاج إلى القيام ببعض الأشياء. لكنني لا أستطيع معرفة أي إشارة للاستخدام. أعتقد أنه "قبول" - لكن لا يبدو أن العمل. هذا هو تطبيق نموذج يوضح مشكلتي ...

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

لا يتم إطلاق مكالمة "قبول option_position". أي فكرة ما يسبب هذا / كيفية إصلاحه؟

هل كانت مفيدة؟

المحلول

'accept_position' هي إشارة كيليبلغ، تنبعث منها فقط عند تغيير حجم الجزء باستخدام لوحة المفاتيح.

أنا لا أعرف روبي، ولكن في C إشارة تريدها هي 'notify::position'. notify هو GObject إشارة التي تنطلق كلما تغيرت الممتلكات قيمتها. إذا أضفت تفاصيل, ، مثل position, ، إلى اسم الإشارة عند توصيله، ثم حرائق فقط عندما هذا محدد الملكية يغير قيمتها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top