Main Content

waitforbuttonpress

クリックまたはキータッチを待機

説明

メモ

App Designer 内および関数 uifigure を使用して作成されたアプリ内では、waitforbuttonpress を使用するよりも、uiwait を使用し、さらに uiresume を呼び出す WindowButtonDownFcn コールバックまたは WindowKeyPressFcn コールバックを指定する方が、アプリの動作をより細かく制御できるため推奨されます。詳細については、代替機能を参照してください。

w = waitforbuttonpress は、現在の Figure 内でユーザーがマウス ボタンをクリックするかキーを押すまで、ステートメントの実行をブロックします。

戻り引数 w は、以下の値を取ることができます。

  • クリックを検出した場合は 0

  • キーが押されたことを検出したら、1 を返す

関数 waitforbuttonpress は、以下のいずれのキーが単独で、あるいは一緒に押されても、値を返しません。CtrlShiftAltCaps LockNum LockScroll Lock

すべて折りたたむ

Figure を作成し、関数 waitforbuttonpress を呼び出します。次に、座標軸を作成し、それが表示されないことを確認します。

figure;
w = waitforbuttonpress;
axes;

Figure をクリックします。ここで、waitforbuttonpress が戻り、実行が継続され、座標軸が表示されます。

ヒント

  • 最後に押されたキー、マウスの選択タイプ、または現在の Figure 内におけるマウス ポインターの位置を特定するには、Figure プロパティの CurrentCharacterSelectionType、および 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 オブジェクトが表示されます。

バージョン履歴

R2006a より前に導入

すべて展開する