Ltk:ボタンを表示する - lisp-cookbook-ja/common-lisp GitHub Wiki

  • ボタン
;;; LTKでボタンを表示する

(ql:quickload :ltk)


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

(in-package :ex4-01)

(defun main ()
  (with-ltk ()
    (wm-title *tk* "Button TEST")
    (let* ((b (make-instance
              'button
                :text "ボタン"
                :command (lambda ()
                           (format t "ボタンを押しました")
                           (setf *exit-mainloop* t)))))
      (pack b))))

(main)

ボタン その②

;;; LTKでボタンを表示する

(ql:quickload :ltk)


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

(in-package :ex4-02)

(defun main ()
  (with-ltk ()
    (let* ((b1 (make-instance
                'button
                :text "ボタン1"
                :command (lambda ()
                           (format t "ボタン1を押しました"))))
           (b2 (make-instance
                'button
                :text "ボタン2"
                :command (lambda ()
                           (format t "ボタン2を押しました"))))
           (b3 (make-instance
                'button
                :text "終了"
                :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 (list b1 b2 b3) :side :top :fill :x) ; fillを指定すると、Wiindowのハシをドラッグして伸ばしてもボタンが大きくなる。
      (pack (list b1 b2 b3) :side :top :fill :both :expand :yes) ; fill,both,expand,yesを指定すると、Wiindowのハシをドラッグして伸ばしても、ボタンが上下左右に大きくなる。
      )))

(main)