common-lisp
gtk
GTK3

CommonLispとGTK+3を使ったGUIアプリケーション作成メモ

More than 1 year has passed since last update.


はじめに

CommonLispとGTK+3を使ったGUIアプリケーションについて、調べたことをメモしていきます。

Ubuntu 17.10で実施。

ちなみに、Raspberry Piでやろうとしたらライブラリであるcl-cffi-gtkがARMに対応していないと怒られ断念・・・orz


ライブラリインストール

RoswellでGTK+3のCommonLispラッパーライブラリをインストール。

ros install crategus/cl-cffi-gtk


空ウィンドウプログラム

とりあえず、基本である空ウィンドウプログラムです。


simple-window.lisp

(ql:quickload :cl-cffi-gtk)

(defpackage :my-gtk
(:use :cl
:gtk
:gdk
:gdk-pixbuf
:gobject
:glib
:gio
:pango
:cairo))

(in-package :my-gtk)

(defun main ()
(within-main-loop
(let ((window (make-instance 'gtk-window
:type :toplevel
:title "Hello, world!"
:default-width 500
:default-height 500)))
(g-signal-connect window "destroy"
(lambda (widget)
(declare (ignore widget))
(leave-gtk-main)))
(gtk-widget-show-all window))))

(main)



実行

以下のコマンドで実行します。

ros run --load simple-window.lisp

以下、スクリーンショット。

Screenshot from 2018-02-06 21-36-22.png


最後に

LTK、Qt(EQL5)と続いて3つ目のGUIライブラリですが、中々使いやすいと思いました。

特に以下のチュートリアルが読みやすいのが良いですね。