Main Content

drag

クラス: matlab.uitest.TestCase
パッケージ: matlab.uitest

UI コンポーネントでのドラッグ動作の実行

説明

drag(testcase,comp,start,stop) は、comp UI コンポーネントの start から stop へのドラッグ動作を実行します。

drag(testcase,compst,start,stop,'SelectionType',type) は、指定されたマウスの選択タイプ type を使用してコンポーネント compst 上でドラッグ動作を実行します。

入力引数

すべて展開する

テスト ケースのインスタンス。matlab.uitest.TestCase オブジェクトとして指定します。

テストでドラッグするコンポーネント。ドラッグ動作をサポートする UI コンポーネント オブジェクトとして指定します。ドラッグ動作をサポートするコンポーネントは、座標軸、連続型ノブ、スライダー、および Figure です。

サポートされるコンポーネント一般的な作成関数
座標軸axes
ノブuiknob
スライダーuislider
UI 座標軸uiaxes
UI Figureuifigure

ドラッグ動作の開始値。数値スカラー、または 1 行 2 列または 1 行 3 列の数値配列として指定します。start の形式は UI コンポーネントによって異なります。

  • ノブおよびスライダー — コンポーネントの範囲をもつ数値スカラー。範囲はコンポーネントの Limits プロパティで定義されます。

  • 座標軸および UI 座標軸 — x 座標、y 座標、およびオプションで z 座標を含む、1 行 2 列または 1 行 3 列の数値配列。

  • UI Figure — x 座標および y 座標を含む、1 行 2 列の数値配列。コンポーネントの左下隅からのピクセル単位の座標を使用して、点の座標を指定します。

例: 20 (ノブ)

例: [2.5 3 1.25] (UI 座標軸)

例: [100 200] (UI Figure)

ドラッグ動作の停止値。数値スカラー、または 1 行 2 列または 1 行 3 列の数値配列として指定します。stop の形式は UI コンポーネントによって異なります。

  • ノブおよびスライダー — コンポーネントの範囲をもつ数値スカラー。範囲はコンポーネントの Limits プロパティで定義されます。

  • 座標軸および UI 座標軸 — x 座標、y 座標、およびオプションで z 座標を含む、1 行 2 列または 1 行 3 列の数値配列。

  • UI Figure — x 座標および y 座標を含む、1 行 2 列の数値配列。コンポーネントの左下隅からのピクセル単位の座標を使用して、点の座標を指定します。

例: 30 (ノブ)

例: [5 3 2.25] (UI 座標軸)

例: [200 300] (UI Figure)

指定されたマウスの選択タイプを使用してテスト中にドラッグするコンポーネント。matlab.graphics.axis.Axesmatlab.ui.control.UIAxes、または matlab.ui.Figure オブジェクトとして指定します。

サポートされるコンポーネント一般的な作成関数
座標軸axes
UI 座標軸uiaxes
UI Figureuifigure

マウスの選択タイプ。'normal''extend'、または 'alt' として指定します。この入力は、コンポーネントでマウス ボタンがどのように押されるかについての情報を提供します。詳細については、UI Figure のプロパティ を参照してください。

次の表は、選択タイプの取り得る値と、それらの値に対応するアクションの一覧です。

対応するアクション

'normal'

左マウス ボタンをクリック

'extend'

Shift キーを押しながら左マウス ボタンをクリック

'alt'

右マウス ボタンをクリック

データ型: char | string

すべて展開する

ノブを作成します。

knob = uiknob;

対話型のテスト ケースを作成し、2 つの値の間でノブをドラッグします。プログラムによるドラッグ動作を表す青い点が表示され、ノブが停止値に達すると消えます。

tc = matlab.uitest.TestCase.forInteractiveUse;
tc.drag(knob,13,42)

最小値が -237、最大値が 237、開始値が 7 のスライダーを作成します。

slider = uislider('Limits',[-237 237],'Value',7);

対話型のテスト ケースを作成し、スライダーの初期値を確認します。

tc = matlab.uitest.TestCase.forInteractiveUse;
tc.verifyEqual(slider.Value,7)
Verification passed.

2 つの値の間でスライダーをドラッグし、最終値を確認します。フレームワークでは任意の適合値に対するコンポーネントの操作が模倣されるため、許容誤差を使用してスライダーの実際の値と期待される値を比較するのがベスト プラクティスです。

val = 26.75;
tc.drag(slider,-val,val)
tc.verifyEqual(slider.Value,val,'AbsTol',0.1)
Verification passed.

UI Figure 内に座標軸を作成し、その座標軸にラインをプロットします。この例では、プロットは x 軸と y 軸の範囲の両方を [1 10] に設定します。

f = uifigure;
ax = axes(f);
plot(ax,1:10)

対話的なテストケースを作成し、点 (3, 2) から点 (4, 2) までドラッグします。プログラムによるドラッグ動作を表す青色の点が開始値で表示され、停止値に達すると非表示になります。座標軸の範囲は開始値と停止値の差に基づいて更新されます。

tc = matlab.uitest.TestCase.forInteractiveUse;
tc.drag(ax,[3 2],[4 2])

ドラッグ動作によって x 座標軸の範囲が 1 単位分減ったことを検証します。フレームワークはユーザーのコンポーネントに対する操作を再現するため、許容誤差を使用して実際の値と期待値とを比較することを推奨します。

tc.verifyEqual(ax.XLim,[0 9],'AbsTol',0.1)
Verification passed.

UI Figure 内に座標軸を作成し、関数 peaks を使用してその座標軸に表面をプロットします。次に、関数 view を呼び出して、座標軸に対するカメラの視線の方位角と仰角を保存します。

f = uifigure;
ax = axes(f);
surf(ax,peaks)
xlabel(ax,'X')
ylabel(ax,'Y')
zlabel(ax,'Z')
[caz_before,cel_before] = view(ax);

対話的なテストケースを作成し、点 (2, 2, -10) から点 (4, 4, 10) までドラッグします。プログラムによるドラッグ動作を表す青色の点が開始値で表示され、停止値に達すると非表示になります。表面プロットの表示がドラッグと共に変化します。

tc = matlab.uitest.TestCase.forInteractiveUse;
tc.drag(ax,[2 2 -10],[4 4 10])

ドラッグ動作により表面プロットの表示が変更されることを検証します。

[caz_after,cel_after] = view(ax);
tc.verifyNotEqual([caz_after cel_after],[caz_before cel_before])
Verification passed.

UI Figure 内に座標軸を作成し、その座標軸にラインをプロットします。

f = uifigure;
ax = axes(f);
plot(ax,1:10)

対話型のテスト ケースを作成し、Figure 上で右クリックを使用して点 (100, 200) から点 (200, 300) にドラッグします。プログラムによるドラッグ動作を表す青色の点が開始値で表示され、停止値に達すると非表示になります。

tc = matlab.uitest.TestCase.forInteractiveUse;
tc.drag(f,[100 200],[200 300],'SelectionType','alt')

次に、座標軸上で左クリックを使用して点 (3, 2) から点 (4, 2) にドラッグします。座標軸の範囲は開始値と停止値の差に基づいて更新されます。

tc.drag(ax,[3 2],[4 2],'SelectionType','normal')

バージョン履歴

R2018a で導入

すべて展開する