内蔵UI関数
uicontrol
関数で使用できるUI関数がいくつかあります。
uicontrol
の機能を補完するために、OML関数uipanel
、uiwait
、uiresume
、およびuitable
が用意されています。
uipanel
uipanel
は、GUIのさまざまなグラフィカルオブジェクトのコンテナです。パネルに含まれるオブジェクトはuipanel
の子と呼ばれます。それぞれの親uipanel
は異なるタイプの子オブジェクト持つことができます。
uipanel
は、figureオブジェクトの中の長方形として視覚的に表現されます。以下のコードでuipanelを作成することが可能です。
f = figure();
panel = uipanel(f,'units','normalized', 'position',[0.05 0.05 0.4 0.9]);

次の例では、親オブジェクトと子オブジェクトの概念を示しています:
f = figure();
panel1 = uipanel(f,'units','normalized','position',[0.05 0.05 0.4 0.9]);
panel2 = uipanel(f,'units','normalized','position',[0.5 0.05 0.4 0.9]);

panel1
とpanel2
では、ハンドルf
が参照ハンドルとして使用されていることに注意してください。これは、両方のuipanelが同じ親オブジェクトf
を持っていることを意味します。
figureハンドルがuipanel
の親オブジェクトとして動作するように、後者はその中の異なるグラフィカルウィジェットの親オブジェクトとして動作します。
uipanel
がfigureハンドルなしで作成された場合、ソフトウェアはuipanel
の親としてデフォルトのfigure オブジェクトを作成します。panel1 = uipanel('units','normalized','position',[0.05 0.05 0.4 0.9]);
uiwait
uiwait
は、uiresume
関数が呼ばれたときに指定された待ち時間かイベントの間、実行を一時停止します。
f = figure();
plot(1:10);
msgfig = msgbox('A plot was successfully created!');
uiwait(msgfig);
disp('Program execution resumed');
このコード例では、再開ボタンが押されるまで実行が停止されることを示しています。
uiresume
uiresumeは ブロックされたプログラムの実行を再開します。uiresume(handle)は、uiwait
が一時停止したプログラムを再開します。
uitable
uitable
はGUI figureにテーブルを作成します。
f = figure();
table = uitable(f,'data',randn(20),'units','normalized','position',[0.1 0.1 0.4 0.5]);

uitab
figure内のオブジェクトをインタラクティブにグラフィカル操作するためのタブをタブ付きフレーム内に作成します。このコマンドは、複雑なワークフローを構築する場合に特に便利です。
f = figure('Name','uitab','NumberTitle','off');
h = uitabgroup(f)
tab1 = uitab(h, 'title', 'My tab 1')
tab2 = uitab(h, 'title', 'My tab 2')

uimenu
figure内のオブジェクトをインタラクティブにグラフィカル操作するためのメニュー項目を作成します。
f = figure('Name','uimenu','NumberTitle','off');
%Callback
function outfunc1 = func1(h,callstate)
warndlg('warning')
end
m1 = uimenu('label', 'Menu1');
item1_m1 = uimenuitem('parent', m1, 'label', 'Foo1', 'callback', '@func1');
