waitforbuttonpress
クリックまたはキータッチを待機
説明
メモ
App Designer 内および関数 uifigure
を使用して作成されたアプリ内では、waitforbuttonpress
を使用するよりも、uiwait
を使用し、さらに uiresume
を呼び出す WindowButtonDownFcn
コールバックまたは WindowKeyPressFcn
コールバックを指定する方が、アプリの動作をより細かく制御できるため推奨されます。詳細については、代替機能を参照してください。
w = waitforbuttonpress
は、現在の Figure 内でユーザーがマウス ボタンをクリックするかキーを押すまで、ステートメントの実行をブロックします。
戻り引数 w
は、以下の値を取ることができます。
クリックを検出した場合は
0
キーが押されたことを検出したら、
1
を返す
関数 waitforbuttonpress
は、以下のいずれのキーが単独で、あるいは一緒に押されても、値を返しません。Ctrl、Shift、Alt、Caps Lock、Num Lock、Scroll Lock
例
ヒント
最後に押されたキー、マウスの選択タイプ、または現在の Figure 内におけるマウス ポインターの位置を特定するには、
Figure
プロパティのCurrentCharacter
、SelectionType
、およびCurrentPoint
をそれぞれクエリします。
アルゴリズム
waitforbuttonpress
を使用するときに検討すべきいくつかの重要な点は、次のとおりです。
Figure に対し
WindowButtonDownFcn
が定義されている場合、それはwaitforbuttonpress
が値を返す前に実行される。関数
waitforbuttonpress
は、コードがtry/catch
ブロック内で関数waitforbuttonpress
を呼び出さない限り、ユーザーがウィンドウの閉じるボタンをクリックすることによって Figure を閉じるとエラーになる。
代替機能
App Designer 内および関数 uifigure
を使用して作成されたアプリ内では、uiwait
を使用してステートメントの実行をブロックします。アプリ ユーザーがマウス ボタンをクリックするかキーを押したときにプログラムの実行を再開するには、uiresume
を呼び出す WindowButtonDownFcn
コールバックまたは WindowKeyPressFcn
コールバックを指定します。
たとえば、次のコードはユーザーが Figure ウィンドウ内をクリックしたときにプログラムの実行を再開する UI figure を作成します。
fig = uifigure('WindowButtonDownFcn',@(src,event)uiresume(src));
uiwait
を呼び出して、uiresume
が呼び出されるか、Figure が削除されるまで、プログラムの実行をブロックします。UIAxes
オブジェクトを作成し、Figure をその親にします。座標軸のセットは表示されません。
uiwait(fig); ax = uiaxes(fig);
次に、Figure をクリックします。プログラムの実行が再開し、UIAxes
オブジェクトが表示されます。