Как заставить Ltk отображать, что пишет пользователь и какие функции печатают?
Тип функций имеет вид:
(defun display-all ()
"Display all items in the database."
(dolist (item *database*)
(format t "~{~a:~10t~a~%~}~%" item)))
(defun prompt-read (prompt)
(format *query-io* "~a: " prompt)
(force-output *query-io*)
(read-line *query-io*))
(defun prompt-for-item ()
(make-database
(prompt-read "Name")
(prompt-read "Price")))
Я прочитал документацию по Ltk, но, похоже, нет примеров использования текстовых виджетов.
1 ответ
Вы создаете текстовый виджет, как и любой другой виджет. Объект со стороны Lisp имеет text
функция доступа с методом писателя, который устанавливает текст на стороне Tk. Минимальный пример:
(with-ltk ()
(let* ((text-widget (make-instance 'text :width 15 :height 2))
(b1 (make-instance 'button
:text "Print"
:command #'(lambda () (princ (text text-widget)))))
(b2 (make-instance 'button :text "Reset"
:command #'(lambda () (setf (text text-widget) "reset")))))
(pack text-widget)
(pack b1)
(pack b2)))