すでに(いつも私のためにうまく働いた)LTKを述べたように、私はまた、Cells-Gtkの好きですほかに、理由はティルトンのCellsは、私の意見では、GUIのコードを書くにすてきなアプローチです。
たとえば、私が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")))))))
そのようには、「計算」ボタンか何かはありません - ちょうど1つの入力フィールドの値を変更し、他の一つはその場で更新されます。ご覧のように、Cellsはウィジェットの状態変更を自動的に処理します。正しい「配管」だけを指定する必要があります。
(このコードは、数年前である、と私はATMそれをテストするための細胞なし-GTKのインストールを持っていないが、私はそれを書いたとき、それが正常に動作するために使用されます。)
'Common LispのGUIツールキットのためのWeb検索'がいくつか登場するようだから、実現可能性は保証されていると思う。 – phils