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)