Доброго времени суток.
Необходимо - создать окно по нажатию кнопки, пеключить в него фокус и создать свои независимые элементы. В идеале запретить переключения фокуса на родительское окно.
(defun main()
(ltk:with-ltk ()
(let* ((btn1 (make-instance 'ltk:button
:text "new"
:command (lambda () (sub-win))))
(btn2 (make-instance 'ltk:button
:text "exit"
:command (lambda () (setf ltk:*exit-mainloop* T)))))
(ltk:pack btn1)
(ltk:pack btn2))))
(defun sub-win ()
(ltk:with-ltk ()
(let* ((btn1 (make-instance 'ltk:button
:text "exit"
:command (lambda () (setf ltk:*exit-mainloop* T)))))
(ltk:pack btn1))))
В таком варианте не могу найти, как переключить фокус на новое окно и заблокировать родительское. Также окна становятся совсем независимыми, и можно закрыть родительское, оставив дочернее работать.
(defun main()
(ltk:with-ltk ()
(let* ((btn1 (make-instance 'ltk:button
:text "new"
:command (lambda () (sub-win))))
(btn2 (make-instance 'ltk:button
:text "exit"
:command (lambda () (setf ltk:*exit-mainloop* T)))))
(ltk:pack btn1)
(ltk:pack btn2))))
(defun sub-win ()
(make-instance 'ltk:toplevel)
(let* ((btn1 (make-instance 'ltk:button
:text "exit"
:command (lambda () (setf ltk:*exit-mainloop* T)))))
(ltk:pack btn1)))
В мане с оф сайта найти ответы не удалось.