LINUX.ORG.RU

gtk, и под микроскопом не вижу


0

0

Не могу понять, почему не привязываются(нет никаких признаков их выполнения) callbacks в следующем коде:


(defun open-file-callback (widget)
  (declare (ignore widget))
  (let ((win (make-instance 'gtk-window :title "Select filename"))
	(fc (make-instance 'file-chooser-widget :width-request 450 :height-request 550))
	(h-box (make-instance 'h-box)) 
	(ok-button (make-instance 'button :label "Ok" :width-request 80))
	(cancel-button (make-instance 'button :label "Cancel" :width-request 80)))
    
    (box-pack-end h-box ok-button :expand nil)
    (box-pack-end h-box cancel-button :expand nil)
    (setf (file-chooser-extra-widget fc) h-box)
    
    (container-add win fc)
    (widget-show win)
     ;<--- *
здесь происходит привязка -
    ;*
    (g-signal-connect cancel-button "activate" #'(lambda (w)
						   (declare (ignore w))
						   (format *std-out* "Cool, I'm button")
						   (object-destroy win)))
    (g-signal-connect ok-button "activate" #'(lambda (w)
					       (declare (ignore w))
					       (format *std-out* "Cool, I'm button")
					       (grep-file (file-chooser-get-file fc))))))
Сам open-file-callback выше по коду в menu-item, выполняется.

   (g-signal-connect open-file "activate" #'open-file-callback)

The ::activate signal on GtkButton is an action signal and emitting it causes the button to animate press then release. Applications should never connect to this signal, but use the «clicked» signal.

yoghurt ★★★★★ ()
Ответ на: комментарий от k_andy

ну это пока первые опыты с гтк, кое что делаю не лучшим образом)

pseudo-cat ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.