uifigure
アプリ設計用の Figure の作成
説明
はユーザー インターフェイス作成用の Figure を作成し、fig
= uifigureFigure
オブジェクトを返します。これは、App Designer で使用されるタイプの Figure です。
は、1 つ以上の名前と値の引数を使用して、Figure プロパティを指定します。fig
= uifigure(Name,Value
)
例
UI Figure の作成
アプリの作成用に空の Figure を作成します。
fig = uifigure;
Figure プロパティの設定とアクセス
特定のタイトルとアイコンをもつ UI Figure を作成します。
fig = uifigure("Name","Plotted Results", ... "Icon","peppers.png");
Figure の背景色をクエリします。
c = fig.Color
c = 1×3
0.9400 0.9400 0.9400
Figure のサイズの変更
既定の 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];
モーダル UI Figure の作成
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';
UI Figure を閉じる際に確認する CloseRequestFcn のコードを記述
ユーザーがウィンドウを閉じようとしたときにモーダルの確認ダイアログ ボックスを開くように、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 の閉じるボタンをクリックします。確認ダイアログ ボックスが開きます。
マウス ポインター シンボルの変更
プッシュ ボタンの上にカーソルを合わせるときに表示されるマウス ポインター シンボルを変更します。
この 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
入力引数
名前と値の引数
引数のオプションのペアを 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 のプロパティ を参照してください。
WindowStyle
— ウィンドウ スタイル
'normal'
(既定値) | 'modal'
| 'alwaysontop'
ウィンドウ スタイル。次のいずれかとして指定します。
'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 と異なり、関数 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'
にリセットすると、そのメニューが表示されます。
Name
— 名前
''
(既定値) | 文字ベクトル | string スカラー
Figure の名前。文字ベクトルまたは string スカラーとして指定します。
例: uifigure('Name','Results')
は、Figure の名前を 'Results'
に設定します。
App Designer では、Name
プロパティの既定値は 'MATLAB App'
です。
Position
— UI figure の位置とサイズ。境界とタイトル バーは除外します。
[left bottom width height]
UI figure の位置とサイズ。境界とタイトル バーは除外します。[left bottom width height]
の形式の 4 要素ベクトルとして指定します。
次の表で、ベクトルの各要素について説明します。
要素 | 説明 |
---|---|
left | プライマリ ディスプレイの左端から UI figure ウィンドウの内側左端までの距離です。この値は、複数のモニターのあるシステム上では負の値になる場合もあります。 |
bottom | プライマリ ディスプレイの下端から UI figure ウィンドウの内側下端までの距離です。この値は、複数のモニターのあるシステム上では負の値になる場合もあります。 |
width | UI figure の内側の左右の端の間の距離です。 |
height | UI figure の内側の上下の端の間の距離です。 |
制限
現在、関数
uifigure
で作成したFigure
オブジェクトは、関数print
に渡すことができません。その試行をした場合、MATLAB はエラーをスローします。詳細については、App Designer でのグラフィックスの表示を参照してください。
ヒント
グラフィックス ルート オブジェクトを使用して、他の型のオブジェクトの既定値をルート レベルで設定します。たとえば、今後のすべての Figure の既定のカラーマップを
summer
カラーマップに設定します。プロパティを元の MATLAB の既定値に戻すには、set(groot,'DefaultFigureColormap',summer)
'remove'
キーワードを使用します。既定値の設定についての詳細は、既定のプロパティ値を参照してください。set(groot,'DefaultFigureColormap','remove')
Figure ウィンドウを前面に表示するには、関数
focus
を使用します。
バージョン履歴
R2016a で導入R2021a: 前景に残る UI Figure の作成
特定の UI Figure ウィンドウを他のウィンドウの前に維持するには、WindowStyle
プロパティを 'alwaysontop'
に設定します。モーダル Figure とは異なり、このプロパティ設定をもつ UI Figure ウィンドウでは、キーボードやマウスの操作が制限されません。
R2020b: モーダル UI Figure の作成
キーボードやマウスの操作を特定の UI Figure ウィンドウに制限するには、WindowStyle
プロパティを 'modal'
に設定します。
R2020b: カスタム アイコンの指定
カスタム アイコンを UI Figure ウィンドウに追加するには、Icon
プロパティをイメージ ファイルに、または m
×n
×3 のトゥルーカラー配列に設定します。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)