Use of postcommand in combobox?

Volker vos at lundinova.se
Mon Jun 25 13:27:46 UTC 2018


Has anyone a clue how postcommand in combobox is supposed to be used?

I want to construct the values of a combobox according to the state
of a device just when klicking on the widget.

I can construct a combobox:

(defun combo-1 ()
   (ltk:with-ltk ()
     (let ((c (make-instance 'combobox :text "Values:" :values '(1 2 3))))
       (ltk:pack c :side :left :padx 2))))

and change the values outside the constructor:

(defun combo-values ()
   "Change :values of combobox outside the constructor"
   (ltk:with-ltk ()
     (let ((c (make-instance 'combobox :text "Values:")))
       (ltk:pack c :side :left :padx 2)
       (setf (options c) '(1 2 3))))) ; changes field :values

Even if I think it would have been better if this would have worked instead:
    (setf (values c) '(1 2 3))

But fail when I try to use postcommand. This doesn't work:

(defun combo-postcommand-1 ()
   "Use of postcommand in combobox."
   (ltk:with-ltk ()
     (let ((c (make-instance 'combobox :text "Values:" :postcommand 
(lambda () (set (options c) '(1 2 3))))))
       (ltk:pack c :side :left :padx 2))))

(I understand that c is not defined when the lambda command is read but 
don't see a correct solution.)

I can not even run a simple function as postcommand, because this 
doesn't work either:

(defun combo-postcommand-2 ()
   (ltk:with-ltk ()
     (let ((c (make-instance 'combobox :text "Values:" :postcommand 
(lambda () (format t "Run postcommand~%")))))
       (ltk:pack c :side :left :padx 2))))

???




More information about the ltk-user mailing list