ErlangでGUI(2)
30分プログラム、その527。ErlangのGUIライブラリを使ってみよう、その2。(前回のやつ: id:mzp20090209:gs)
ボタンを押すと押した回数を表示するプログラムを書いてみた。イベントに反応して、画面を更新する、というのをやりたかったので。
『ボタンがクリックされた』とかのイベントがErlangのメッセージとして飛んでくるのが、わりとおもしろい。イベントハンドラの登録とかがいらなくて、Erlangの文法がそのまま使えるのがステキだと思う。
使い方
1> gui_react:init().
ソースコード
-module(gui_react). -compile([export_all]). init() -> Top = gs:start(), Win = gs:create(window,Top,[{width,200},{height,200},{map,true},{title,"count up"}]), Button = gs:create(button,Win,[{label,{text,"click,me!!"}}]), loop(Button,1). loop(Button,N) -> receive {gs,Button,click,_,_} -> gs:config(Button,[{label,{text,io_lib:format("~p",[N])}}]), loop(Button,N+1); {gs,_,destroy,_,_} -> ok end.
参考
- 過去の30分プログラム
- GS User's Guide
- id:mzp:20090209:gs