ErlangでGUI(3) 〜レイアウト〜
30分プログラム、その533。ErlangでGUIをやってみよう、レイアウト編。
packerというwidgetを使うとレイアウトを制御できるらしいので、やってみた。X方向とY方向の重みを設定してpackerをつくったあと、そこにボタンなどを配置していく。なんとなくJavaのGridBagLayoutに似ている気がする。
使い方
1> gui_pack:init().
ソースコード
-module(gui_pack). -compile([export_all]). times(N,X) -> [X || _ <- lists:seq(1,N)]. init() -> Top = gs:start(), Win = gs:create(window,Top,[{width,200},{height,200},{map,true}]), gs:frame(frame,Win,[{packer_x,times(3,{stretch,1})}, {packer_y,times(3,{stretch,1})}]), [ gs:button(frame,[{label,{text,io_lib:format("~p",[X+(Y-1)*3])}},{pack_xy,{X,Y}}]) || X <- lists:seq(1,3), Y <- lists:seq(1,3) ], gs:config(frame,[{width,200},{height,200}]), loop(). loop() -> receive {gs,_,destroy,_,_} -> ok end.