内蔵UI関数

uicontrol関数で使用できるUI関数がいくつかあります。

uicontrolの機能を補完するために、OML関数uipaneluiwaituiresume、および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]);


panel1panel2では、ハンドル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');