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)