Ltk:ラジオボタンを表示する - lisp-cookbook-ja/common-lisp GitHub Wiki
;;; LTKでラジオボタンを表示する
(ql:quickload :ltk)
;; パッケージの作成
(defpackage :ex4-06
(:use :common-lisp
:ltk)
(:export :main))
(in-package :ex4-06)
(defun main ()
(with-ltk ()
(let* (
(fradio (make-instance 'frame))
(r1 (make-instance 'radio-button :master fradio :text "fried" :value 1 :variable "group1"
:command (lambda (value)
(format t "radio-button1_click!:~A~%" value))))
(r2 (make-instance 'radio-button :master fradio :text "stirred" :value 2 :variable "group1"
:command (lambda (value)
(format t "radio-button2_click!:~A~%" value))))
(r3 (make-instance 'radio-button :master fradio :text "cooked" :value 3 :variable "group1"
:command (lambda (value)
(format t "radio-button3_click!:~A~%" value))))
(btn (make-instance
'button
:text "radio watch"
:command (lambda ()
;; r1〜r3のすべてが同じ値を表示する
;; つまり、同じグループで値が共通になるので、グループのどれかのvalueを調べれば何が選択されているかわかる
(print (value r1))
(print (value r2))
(print (value r3)))))
)
(pack fradio :side :top :fill :x)
(pack (list r1 r2 r3) :side :left)
(pack btn)
;; 初期状態を決める(r1を選択状態にする)
;; :valueで決めた値をセットしなければ、選択状態にならない
(setf (value r1) 1)
)))
(main)