Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

uifigure

アプリ設計用の Figure の作成

説明

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

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

すべて折りたたむ

fig = uifigure;

指定したタイトルをもつ UI figure を作成します。

fig = uifigure('Name','Plotted Results');

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

p = fig.Position
ans =

   680   678   560   420

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

fig = uifigure;

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

fig.Position
ans =

   681   559   560   420

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

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

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

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';

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

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

function closeFig

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

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

end

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

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

この 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

入力引数

すべて折りたたむ

名前と値のペアの引数

オプションの Name,Value の引数ペアをコンマ区切りで指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順序で指定できます。

例: '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 で導入