Ltk:ラベルを設定する - lisp-cookbook-ja/common-lisp GitHub Wiki

  • ラベル
;;; LTKのラベルをテストする

(ql:quickload :ltk)


;; パッケージの作成
(defpackage :ex4-14
  (:use :common-lisp
        :ltk)
  (:export :main))

(in-package :ex4-14)

(defun main ()
  (with-ltk ()
    (wm-title *tk* "ラベルテスト")
    (minsize *tk* 300 100)

    (let* ((lbl (make-instance
                 'label
                 :text ""
                 :background "#FFFFFF"))

           (fradio (make-instance 'frame))
           (r1 (make-instance 'radio-button :master fradio :text "いちばん上" :value 1 :variable "group1"
                              :command (lambda (value)
                                         (format t "radio-button1_click!:~A~%" value)
                                         (setf (text lbl) "いちばん上"))))

           (r2 (make-instance 'radio-button :master fradio :text "真ん中  " :value 2 :variable "group1"
                              :command (lambda (value)
                                         (format t "radio-button2_click!:~A~%" value)
                                         (setf (text lbl) "真ん中" ))))

           (r3 (make-instance 'radio-button :master fradio :text "いちばん下" :value 3 :variable "group1"
                              :command (lambda (value)
                                         (format t "radio-button3_click!:~A~%" value)
                                         (setf (text lbl) "いちばん下" ))))
           
           
           (b1 (make-instance
                'button
                :text "Close"
                :command (lambda ()
                           (format t "終了")
                           (setf *exit-mainloop* t)))))
      ;(pack (list b1 b2 b3) :side :top)
      ;(pack (list b1 b2 b3) :side :left)
      ;(pack (list b1 b2 b3) :side :right)
      ;(pack (list b1 b2 b3) :side :bottom)

      (pack lbl :side :top :fill :x)
      (pack fradio :side :top)
      (pack (list r1 r2 r3) :side :top)
      (pack b1 :side :top :fill :x) ; fillを指定すると、Wiindowのハシをドラッグして伸ばしてもボタンが大きくなる。
      )))

(main)