Además de la ya mencionada LTK (que siempre funcionó bien para mí), también soy aficionado a Cells-Gtk, porque Tilton de Cells son, en mi opinión, una buena aproximación a la escritura de código GUI. (Aún así, LTK podría ser más fácil para empezar).
Por ejemplo, aquí hay un código para un convertidor Fahrenheit/Celsius muy simple (y viceversa) que escribí cuando recién comenzaba con Cells-Gtk:
(defun fahrenheit->celsius (fahrenheit/string)
(princ-to-string (handler-case
(* (- (read-from-string fahrenheit/string nil) 32) 5/9)
(error() "NaN"))))
(defun celsius->fahrenheit (celsius/string)
(princ-to-string (handler-case
(+ (* (read-from-string celsius/string nil) 9/5) 32)
(error() "NaN"))))
(defmd celsius-fahrenheit-converter (gtk-app)
:title "°C <-> °F"
:position :center
:kids
(kids-list?
(mk-vbox
:kids
(kids-list?
(mk-hbox
:kids
(kids-list?
(mk-entry :md-name :celsius
:init "0"
:text (c? (fahrenheit->celsius (widget-value :fahrenheit))))
(mk-label :text "°C")))
(mk-hbox
:kids
(kids-list?
(mk-entry :md-name :fahrenheit
:text (c? (celsius->fahrenheit (widget-value :celsius))))
(mk-label :text "°F")))))))
no hay un botón "Calcular" o algo por el estilo - apenas cambie el valor de un campo de entrada y el otro se actualizará sobre la marcha. Como puede ver, Cells maneja los cambios de estado de los widgets de forma automática, solo debe proporcionarse la "tubería" correcta.
(Este código es un par de años, y no tengo ninguna instalación de células-GTK para probarlo cajero automático, pero es utilizado para que funcione correctamente cuando la escribí.)
Una búsqueda web para 'kit de herramientas de interfaz gráfica de usuario Common Lisp 'parece aparecer varios, así que creo que la viabilidad está asegurada. – phils