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

属性

Sealedtrue

メソッドの属性の詳細については、メソッドの属性を参照してください。

すべて展開する

ノブを作成します。

knob = uiknob;

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

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

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

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

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

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

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

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

マウス選択タイプに基づいて背景色が変化する Figure でドラッグ動作をテストします。

既定以外のマウス選択タイプを使用してドラッグすると背景色が変化する UI Figure を作成します。Figure の動作をプログラムするために、Figure のWindowButtonMotionFcnコールバック プロパティを指定して、ウィンドウ ボタンを移動したときのコールバックを作成します。この例の最後にあるコールバック関数 changeColor のコードを参照してください。これを使用して、背景色を選択タイプに基づいて変更します。

fig = uifigure(Color="white", ...
    WindowButtonMotionFcn=@(src,~)changeColor(src));

対話型のテスト ケースを作成し、それを使用して Figure の背景色が白 ([1 1 1]) であることを確認します。

testCase = matlab.uitest.TestCase.forInteractiveUse;
testCase.verifyEqual(fig.Color,[1 1 1])
Verification passed.

Figure で点 (100, 200) から点 (200, 300) への右クリックを使用したドラッグ動作をテストします。この動作により、Figure の SelectionType プロパティが 'alt' に設定されます。動作によって、Figure の背景色を SelectionType プロパティの値に基づいて設定するコールバックも実行されます。

testCase.drag(fig,[100 200],[200 300],"SelectionType","alt")

背景色が緑 ([0 1 0]) になったかどうかをテストします。テストはパスします。

testCase.verifyEqual(fig.Color,[0 1 0])
Verification passed.

コールバック関数

次のコードは、この例で使用しているコールバック関数を示したものです。この関数は、Figure の SelectionType プロパティをクエリしてマウス選択タイプを識別します。

function changeColor(fig)
switch fig.SelectionType
    case 'extend'   % using shift-click to drag
        fig.Color = "red";
    case 'alt'  % using right-click to drag
        fig.Color = "green";
end
end

バージョン履歴

R2018a で導入

すべて展開する