メインコンテンツ

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.9608    0.9608    0.9608

既定の 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";

Two UI figure windows. Figure 2 is in front of Figure 1.

ユーザーがウィンドウを閉じようとしたときにモーダルの確認ダイアログ ボックスを開くように、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 を指定します。

メモ

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

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

  • 'normal' — 他の MATLAB ウィンドウから独立したスタンドアロンのウィンドウに Figure が表示されます。

  • 'docked' — デスクトップに Figure がドッキングされます。

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

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

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

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

メモ

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' です。

境界線、Figure ツール、タイトル バーを除く Figure の位置とサイズ。[left bottom width height] の形式の 4 要素ベクトルとして指定します。

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

要素説明
left

プライマリ ディスプレイの左端から、ウィンドウ内側の左端までの距離。この値は、複数のモニターのあるシステム上では負の値になる場合もあります。

Figure がドッキングしている場合、この値はコンテナーを基準にした値になります。

bottom

プライマリ ディスプレイの下端から、ウィンドウ内側の下端までの距離。この値は、複数のモニターのあるシステム上では負の値になる場合もあります。

Figure がドッキングしている場合、この値はコンテナーを基準にした値になります。

widthウィンドウ内側の左右の端の距離。
heightウィンドウ内側の上下の端の距離。

すべての測定値は、Units プロパティで指定した単位で表されます。

境界線、Figure ツール、タイトル バーを含むウィンドウ全体を配置するには、OuterPosition プロパティを使用します。

メモ

Windows® オペレーティング システムでは、最小ウィンドウ幅と最大ウィンドウ サイズが適用されます。これらの範囲を超える Figure サイズを指定した場合、表示される Figure は指定されたサイズではなく、これらの範囲に従います。

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")
    既定値の設定についての詳細は、既定のプロパティ値を参照してください。

  • Figure ウィンドウを前面に表示するには、関数 focus を使用します。

バージョン履歴

R2016a で導入

すべて展開する

参考

関数

オブジェクト

ツール