chooseContextMenu
クラス: matlab.uitest.TestCase
名前空間: matlab.uitest
コンテキスト メニュー項目に対する選択動作の実行
構文
説明
入力引数
テスト ケース。matlab.uitest.TestCase オブジェクトとして指定します。
コンテキスト メニューをもつ UI コンポーネント。UI コンポーネント オブジェクトとして指定します。コンテキスト メニューには menuitem で指定されるメニュー項目が含まれていなければなりません。コンテキスト メニューをサポートするコンポーネントには、イメージ、ボタン、スイッチ、座標軸、figure があります。
| サポートされるコンポーネント | 一般的な作成関数 |
|---|---|
| 座標軸 | axes |
| ボタン | uibutton |
| チェック ボックス | uicheckbox |
| 日付ピッカー | uidatepicker |
| 離散型ノブ | uiknob |
| ドロップ ダウン | uidropdown |
| 編集フィールド (数値、テキスト) | uieditfield |
| ハイパーリンク | uihyperlink |
| イメージ | uiimage |
| ノブ | uiknob |
| ラベル | uilabel |
| リスト ボックス | uilistbox |
| パネル | uipanel |
| 極座標軸 | polaraxes |
| ラジオ ボタン | uiradiobutton |
| スライダー | uislider |
| スピナー | uispinner |
| 状態ボタン | uibutton |
| スイッチ (ロッカー、スライダー、トグル) | uiswitch |
| テキスト エリア | uitextarea |
| トグル ボタン | uitogglebutton |
| ツリー ノード | uitreenode |
| UI 座標軸 | uiaxes |
| UI Figure | uifigure |
例: uifigure
例: axes('Position',[0.1 0.1 .6 .6])
例: uispinner('Limits',[0 10],'Value',5)
テスト中に選択するコンテキスト メニュー項目。matlab.ui.container.Menu オブジェクトとして指定します。メニュー項目は関数 uimenu を使用して作成されます。
UI コンポーネント内でコンテキスト メニューを開く場所。点の座標軸として指定します。location の形式は UI コンポーネントによって異なります。
座標軸および UI 座標軸 — x 座標、y 座標、およびオプションで z 座標を含む、1 行 2 列または 1 行 3 列の数値配列。
極座標軸 — θ 座標および r 座標を含む、1 行 2 列の数値配列。
パネル — x 座標および y 座標を含む、1 行 2 列の数値配列。コンポーネントの左下隅からのピクセル単位の点の座標を指定します。
UI Figure — x 座標および y 座標を含む、1 行 2 列の数値配列。コンポーネントの左下隅からの点の座標を指定します。
例: [32.5 13 0.25] (UI 座標軸)
例: [pi/2 0.5] (極座標軸)
例: [100 200] (UI Figure)
ターゲットのテーブル UI コンポーネント。matlab.ui.control.Table オブジェクトとして指定します。テーブル UI コンポーネントは、関数 uitable で作成されます。
右クリックするテーブル セルのインデックス。行インデックスが列インデックスの前に示される 1 行 2 列のベクトルとして指定します。
例: [2 3]
例
UI Figure に 2 つのメニュー項目をもつコンテキスト メニューを作成します。ContextMenu オブジェクトに figure の ContextMenu プロパティを設定して、figure にコンテキスト メニューを割り当てます。コンテキスト メニューを表示するには、Figure ウィンドウの任意の場所を右クリックします。
fig = uifigure; cm = uicontextmenu(fig); m1 = uimenu(cm,'Text','Menu1'); m2 = uimenu(cm,'Text','Menu2'); fig.ContextMenu = cm;
対話型のテスト ケースを作成し、メニュー項目 m1 を選択します。コンテキスト メニューと青色の点が figure の中央に表示されます。次に、プログラムでの選択動作を表す 2 番目の青色の点が、選択されたメニュー項目の中央に表示され、非表示になります。
tc = matlab.uitest.TestCase.forInteractiveUse; tc.chooseContextMenu(fig,m1)
UI Figure 内に Axes オブジェクトを作成します。2 つのメニュー項目をもつコンテキスト メニューを Axes オブジェクトに割り当てます。
fig = uifigure; ax = axes(fig); cm = uicontextmenu(fig); m1 = uimenu(cm,'Text','Menu1'); m2 = uimenu(cm,'Text','Menu2'); ax.ContextMenu = cm;
対話的なテストケースを作成し、その座標軸のコンテキスト メニューを座標 (0.85,0.2) で開いてメニュー項目 m2 を選択します。コンテキスト メニューと青色の点が指定された座標軸の座標に表示されます。次に、プログラムでの選択動作を表す 2 番目の青色の点が、2 番目のメニュー項目の中央に表示され、非表示になります。
tc = matlab.uitest.TestCase.forInteractiveUse; tc.chooseContextMenu(ax,m2,[0.85 0.2]);
異なるデータ型が混在して含まれるテーブル UI コンポーネントを作成します。次に、2 つの項目をもつコンテキスト メニューをテーブルに割り当てます。
fig = uifigure;
uit = uitable(fig);
d = {'Male',52,true;'Male',40,true;'Female',25,false};
uit.Data = d;
cm = uicontextmenu(fig);
m1 = uimenu(cm,'Text','Menu1');
m2 = uimenu(cm,'Text','Menu2');
uit.ContextMenu = cm;対話型のテスト ケースを作成し、インデックス (1,1) をもつテーブル セル内でコンテキスト メニューを開いてメニュー項目 m2 を選択します。
tc = matlab.uitest.TestCase.forInteractiveUse; tc.chooseContextMenu(uit,m2,[1 1])

バージョン履歴
R2020b で導入任意の測定単位を使用して、UI Figure 上のジェスチャの位置を指定できます。以前のリリースでは、メソッドにより、Units プロパティが "pixels" に設定されている Figure に対してのみ座標を指定できます。
アクティブな右の y 軸をもつ座標軸または UI 座標軸上のジェスチャの位置を指定することはサポートされなくなりました。グラフに 2 つの y 軸がある場合は、ジェスチャを実行する前に、左の y 軸に関連付けられている側をアクティブにします。以前のリリースでは、右側がアクティブな座標軸または UI 座標軸上の位置を指定すると、アプリ テスト フレームワークはその位置を左の y 軸を基準にして解釈します。これにより、ジェスチャが予期しない位置で発生したり、失敗したりする恐れがあります。
入れ子にされたノードを操作するためにツリー ノードを展開する必要があるユーザーの操作をより忠実に再現するために、折りたたまれたツリー ノードで chooseContextMenu メソッドを使用して動作を実行するときにノード展開コールバックが実行されます。コールバックはツリーの NodeExpandedFcn プロパティを設定することで指定できます。
たとえば、入れ子にされたツリー ノードのメニュー項目をプログラムで選択し、プログラムによって展開されたすべてのノードのテキストを表示します。
fig = uifigure; t = uitree(fig); t.NodeExpandedFcn = @(src,event) disp(event.Node.Text); parent = uitreenode(t,"Text","Runners"); child1 = uitreenode(parent,"Text","Joe"); child2 = uitreenode(parent,"Text","Linda"); cm = uicontextmenu(fig); m1 = uimenu(cm,"Text","Menu1"); m2 = uimenu(cm,"Text","Menu2"); child2.ContextMenu = cm; testCase = matlab.uitest.TestCase.forInteractiveUse; testCase.chooseContextMenu(child2,m1)
コールバックを実行せずに R2023b 以前の動作を維持する場合は、動作の実行前にツリー ノードを展開します。次のコードでは、コールバックは実行されません。
fig = uifigure; t = uitree(fig); t.NodeExpandedFcn = @(src,event) disp(event.Node.Text); parent = uitreenode(t,"Text","Runners"); child1 = uitreenode(parent,"Text","Joe"); child2 = uitreenode(parent,"Text","Linda"); cm = uicontextmenu(fig); m1 = uimenu(cm,"Text","Menu1"); m2 = uimenu(cm,"Text","Menu2"); child2.ContextMenu = cm; testCase = matlab.uitest.TestCase.forInteractiveUse; expand(parent) testCase.chooseContextMenu(child2,m1)
右クリックでハイパーリンク コンポーネント内のコンテキスト メニューが開くかをテストできます。
右クリックをテストして、ラベル コンポーネント内でコンテキスト メニューを開くことができます。
右クリックをテストして、パネルおよびテーブル UI コンポーネント内でコンテキスト メニューを開くことができます。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)