2007年8月26日日曜日

GUI環境

FreeMatの他にもScilabGNU Octaveなどフリーの数値解析ソフトウェアは数多くある(MATLABは有償)。これらのソフトウェアが持たず、FreeMatのみがもつ有益な機能が、今回紹介する「GUI構築機能」である(MATLABはもちろん本機能はある)。

MATLABには、「GUIDE」というGUI構築機能があるが、FreeMatにはまだない。そうはいってもGUIDEはGUIのオブジェクトの配置を決定することだけが有益であり、コマンドのuicontrolで如何様にも対応できる。

例えば以下のコマンドをFreeMatのコマンドライン上で実行できるであろうか。

--> uicontrol('style','edit','string','0','position',[10 50 300 40])

このuicontrolというコマンドにてエディットボックスができる。以下にGUI構築の簡単な例を示す。2つのm-ファイルに分けて実行してみよう。

(test_gui.m)
h_e=uicontrol('style','edit','string','0','position',[10 50 300 40]);
h_s=uicontrol('style','slider','position',[10 150 300 40],'max',10);
a=[h_s,h_e];
h_b=uicontrol('style','pushbutton','position',[10 250 50 40],'string','push','callback','aaa(a)')


(aaa.m)

function aaa(a)

h_s=a(1)

h_e=a(2)

a=get(h_s,'value');

set(h_e,'string',num2str(a));


上記の図が実行結果である。
スライダーを動かし、ボタンを押すとそのときのスライダーバーの値をエディットボックスに返す(スライダーは0~10の値をもつ)。

このようにオブジェクトの管理の仕方もMATLABと同じであり、非常に便利である。この例に関して質問のある方はコメントまで。



0 件のコメント: