Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

uifigure

アプリ設計用の Figure の作成

説明

fig = uifigure はユーザー インターフェイス作成用の Figure を作成し、Figure オブジェクトを返します。これは、App Designer で使用されるタイプの Figure です。

fig = uifigure(Name,Value) は、1 つ以上の名前と値の引数を使用して、Figure プロパティを指定します。

すべて折りたたむ

アプリの作成用に空の Figure を作成します。

fig = uifigure;

Blank UI figure window

特定のタイトルとアイコンをもつ UI Figure を作成します。

fig = uifigure("Name","Plotted Results", ...
    "Icon","peppers.png");

UI Figure window. The title at the top of the window is Plotted Results and the icon is an image of peppers.

Figure の背景色をクエリします。

c = fig.Color
c = 1×3

    0.9400    0.9400    0.9400

既定の UI Figure を作成します。

fig = uifigure;

Blank UI figure window.

Figure の位置、幅および高さを取得します。

fig.Position
ans =

   681   559   560   420

これは、Figure ウィンドウがプライマリ ディスプレイの右に 681 ピクセル、左下隅から 559 ピクセルの位置に配置され、幅が 560 ピクセルで高さが 420 ピクセルであることを意味します。

位置ベクトルの第 3 と第 4 の要素を調整して、Figure の幅と高さを半分にします。

fig.Position(3:4) = [280 210];

Blank UI figure window. The window is half as tall as half as wide as the default window.

2 つの UI Figure ウィンドウを作成します。Figure 2 の WindowStyle プロパティの値として 'modal' を指定して、Figure 1 での操作をブロックします。Figure 2 が閉じられるまで Figure 1 で操作できないことに注意してください。

fig1 = uifigure('Name','Figure 1');
fig1.Position = [500 500 370 270];

fig2 = uifigure('Name','Figure 2');
fig2.Position = [540 450 370 270];
fig2.WindowStyle = 'modal';

ユーザーがウィンドウを閉じようとしたときにモーダルの確認ダイアログ ボックスを開くように、CloseRequestFcn コールバックのコードを記述します。

次のコードをコピーして MATLAB® エディターに貼り付けてから、closeFig を実行します。

function closeFig
fig = uifigure('Position',[100 100 425 275]);
fig.CloseRequestFcn = @(src,event)my_closereq(src);

    function my_closereq(fig)
        selection = uiconfirm(fig,'Close the figure window?',...
            'Confirmation');
        
        switch selection
            case 'OK'
                delete(fig)
            case 'Cancel'
                return
        end
    end

end

Figure の閉じるボタンをクリックします。確認ダイアログ ボックスが開きます。

Confirmation dialog box in a figure window. The dialog says "Close the figure window?" next to a question mark icon. There are OK and Cancel buttons at the bottom.

プッシュ ボタンの上にカーソルを合わせるときに表示されるマウス ポインター シンボルを変更します。

この setMousePointer.m という名前のプログラム ファイルでは、次の方法を示します。

  • マウスをボタンの上に移動したときにカスタム コードを実行する UI figure を作成します。これを行うには、@ 演算子を使用して、関数ハンドル mouseMoved を Figure の WindowButtonMotionFcn プロパティに割り当てます。

  • プッシュ ボタンを作成してその座標とラベルを指定します。

  • マウスをボタンの上に移動したときに実行するカスタム コードをもつ mouseMoved という名前のコールバック関数を作成します。その関数で CurrentPoint プロパティをクエリして、マウス ポインターの座標を判別します。ポインターの座標がプッシュ ボタンの座標内にある場合に Pointer プロパティを 'hand' に設定します。

setMousePointer を実行します。その後、マウスをプッシュ ボタンの上に移動して、マウス ポインターのシンボルが矢印から手に変化することを確認します。

function setMousePointer
fig = uifigure('Position',[500 500 375 275]);
fig.WindowButtonMotionFcn = @mouseMoved;

btn = uibutton(fig);
btnX = 50;
btnY = 50;
btnWidth = 100;
btnHeight = 22;
btn.Position = [btnX btnY btnWidth btnHeight];
btn.Text = 'Submit Changes';

    function mouseMoved(src,event)
        mousePos = fig.CurrentPoint;
        if (mousePos(1) >= btnX) && (mousePos(1) <= btnX + btnWidth) ...
                && (mousePos(2) >= btnY) && (mousePos(2) <= btnY + btnHeight)
              fig.Pointer = 'hand';
        else
              fig.Pointer = 'arrow';
        end
    end
end

Figure window with a button that says "Submit Changes". The mouse pointer is over the button, and is in the shape of a hand.

入力引数

すべて折りたたむ

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。

例: uifigure(Name="My App") は UI Figure のタイトルとして My App を指定します。

R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name を引用符で囲みます。

例: uifigure("Name","My App") は UI Figure のタイトルとして My App を指定します。

メモ

以下にリストするプロパティは、利用できるプロパティの一部です。完全なリストについては、UI Figure のプロパティ を参照してください。

ウィンドウ スタイル。次のいずれかとして指定します。

  • 'normal' — Figure ウィンドウは他のウィンドウから独立しており、この Figure の表示中に他のウィンドウにアクセスできます。

  • 'modal' — この Figure は、通常のウィンドウ スタイルをもつ既存のすべての Figure ウィンドウの前面に表示されます。この最前面に表示された Figure が存在してモーダルな状態である限り、既存のウィンドウへのアクセスはできなくなります。ただし、モーダルな Figure の後に作成された新しい Figure は表示されます。

    複数のモーダルなウィンドウが存在する場合、最後に作成されたウィンドウがフォーカスされ、他のすべてのウィンドウの前面に表示されます。この状態は、不可視になるか、通常のウィンドウ スタイルに戻るか、削除されるまで継続します。継続が終了した場合、フォーカスは、最後にフォーカスされたウィンドウに戻ります。

  • 'alwaysontop' — この Figure は、モーダルな Figure ウィンドウや MATLAB 以外のアプリケーションのウィンドウを含む、他のすべてのウィンドウの前面に表示されます。他のウィンドウには引き続きアクセスできます。

メモ

WindowStyle プロパティにはいくつかの重要な特徴と推奨されるベスト プラクティスがあります。

  • UI ウィンドウを作成するときは、常に WindowStyle プロパティを指定します。さらに Figure の Resize プロパティまたは Position プロパティも設定する場合は、WindowStyle プロパティを最初に設定します。

  • Figure の WindowStyle プロパティは、Figure が可視な場合や子オブジェクトを含む場合を含め、いつでも変更できます。ただし、一部のシステムではノーマル ウィンドウとモーダル ウィンドウの実装によっては、このプロパティを設定することで、Figure の点滅や非表示後に再表示される現象が発生する場合もあります。視覚的に最良な結果を得るには、WindowStyle プロパティの設定は、Figure の作成時または非表示のときに行います。

UI Figure モーダル ウィンドウ スタイルの動作

WindowStyle'modal' に設定されている場合、UI Figure ウィンドウは、それより前に作成された、Visible プロパティが 'on' に設定されている UI Figure ウィンドウでのキーボードとマウスの操作をブロックします。たとえば、この例では Figure 3 は Figure 2 に対してモーダルであり、Figure 2 は Figure 1 に対してモーダルです。

fig1 = uifigure('Name','Figure 1');
fig1.WindowStyle = 'modal';

fig2 = uifigure('Name','Figure 2');
fig2.WindowStyle = 'modal';

fig3 = uifigure('Name','Figure 3');
fig3.WindowStyle = 'modal';
モダリティの階層は、Figure の階層内にモーダルな Figure と通常の Figure の組み合わせがある場合は保持されません。

関数 figure を使用して作成されたモーダル Figure と異なり、関数 uifigure を使用して作成されたモーダル Figure は、関数 figure またはまたは MATLAB デスクトップを使用して作成された Figure へのアクセスをブロックしません。MATLAB 以外のアプリケーション ウィンドウの操作はブロックされません。

モーダルな Figure にフォーカスがあるときに Ctrl + C を入力すると、Figure は 'normal' WindowStyle プロパティ設定に戻ります。これによりユーザーはコマンド ラインに入力できます。

WindowStyle プロパティが 'modal' に、Visible プロパティが 'off' に設定された UI Figure は、MATLAB が表示しない限りモーダル動作になりません。このためモーダル ウィンドウを破棄する代わりに、後で再利用するために非表示にすることができます。

モーダルな Figure はメニューの子、組み込みのメニュー、ツール バーを表示しません。しかし、モーダルな Figure 内にメニューを作成したり、メニューの子をもつ Figure で WindowStyle プロパティの設定を 'modal' に変更したりするのは誤りではありません。その Menu オブジェクトは存在し、Figure はそれを維持します。UI Figure の WindowStyle プロパティを 'normal' にリセットすると、そのメニューが表示されます。

Figure の名前。文字ベクトルまたは string スカラーとして指定します。

例: uifigure('Name','Results') は、Figure の名前を 'Results' に設定します。

App Designer では、Name プロパティの既定値は 'MATLAB App' です。

UI figure の位置とサイズ。境界とタイトル バーは除外します。[left bottom width height] の形式の 4 要素ベクトルとして指定します。

次の表で、ベクトルの各要素について説明します。

要素説明
leftプライマリ ディスプレイの左端から UI figure ウィンドウの内側左端までの距離です。この値は、複数のモニターのあるシステム上では負の値になる場合もあります。
bottomプライマリ ディスプレイの下端から UI figure ウィンドウの内側下端までの距離です。この値は、複数のモニターのあるシステム上では負の値になる場合もあります。
widthUI figure の内側の左右の端の間の距離です。
heightUI figure の内側の上下の端の間の距離です。

制限

  • 現在、関数 uifigure で作成した Figure オブジェクトは、関数 print に渡すことができません。その試行をした場合、MATLAB はエラーをスローします。詳細については、App Designer でのグラフィックスの表示を参照してください。

ヒント

  • グラフィックス ルート オブジェクトを使用して、他の型のオブジェクトの既定値をルート レベルで設定します。たとえば、今後のすべての Figure の既定のカラーマップを summer カラーマップに設定します。

    set(groot,'DefaultFigureColormap',summer)
    プロパティを元の MATLAB の既定値に戻すには、'remove' キーワードを使用します。
    set(groot,'DefaultFigureColormap','remove')
    既定値の設定についての詳細は、既定のプロパティ値を参照してください。

バージョン履歴

R2016a で導入

すべて展開する