※この翻訳ドキュメントはスクリプトによって出力・同期されています。内容が怪しそうな場合はGitHubにissueを追加したり英語の原文の確認をお願いします。

dblclick インターフェイス

このページではdblclick (double-click)のインターフェイスについて説明します。

インターフェイス概要

dblclickインターフェイスはSpriteRectangleなどの任意のDisplayObjectのサブクラスのインスタンスへダブルクリック時のイベントを設定します。もし登録したインスタンス上でダブルクリックした場合、登録されているハンドラの関数などが呼び出されます。

関連資料

以下のページでは基本的なマウスイベントの各インターフェイスについて説明しています。

dblclick インターフェイスの基本的な使い方

DisplayObjectのサブクラスの各インスタンスはdblclickメソッドを持っており、それを使ってハンドラを登録することができます。

以下のコード例では四角に対してダブルクリック時のハンドラを登録しています。対象の四角のインスタンスをダブルクリックすると四角の色はシアンからマゼンタに変化します。

import apysc as ap


def on_double_click(e: ap.MouseEvent[ap.Rectangle], options: dict) -> None:
    """
    The handler that the rectangle calls when double-clicked.

    Parameters
    ----------
    e : ap.MouseEvent
        Event instance.
    options : dict
        Optional arguments dictionary.
    """
    rectangle: ap.Rectangle = e.this
    rectangle.fill_color = ap.Color("#f0a")


ap.Stage(
    stage_width=150,
    stage_height=150,
    background_color=ap.Color("#333"),
    stage_elem_id="stage",
)
sprite: ap.Sprite = ap.Sprite()
sprite.graphics.begin_fill(color=ap.Color("#0af"))
rectangle: ap.Rectangle = sprite.graphics.draw_rect(x=50, y=50, width=50, height=50)
rectangle.dblclick(on_double_click)

ap.save_overall_html(dest_dir_path="./dblclick_basic_usage/")

unbind_dblclick の各インターフェイスの基本的な使い方

unbind_dblclickインターフェイスはDisplayObjectのサブクラスの任意のインスタンスからダブルクリックイベントのハンドラの設定を取り除きます。また、unbind_dblclick_allインターフェイスは対象のインスタンスに設定されているダブルクリックのハンドラ設定を全て取り除きます。

以下のコード例ではunbind_dblclickメソッドでダブルクリックのイベント設定を取り除いているため、四角をダブルクリックしても何も起きません。

import apysc as ap


def on_double_click(e: ap.MouseEvent[ap.Rectangle], options: dict) -> None:
    """
    The handler that the rectangle calls when double-clicked.

    Parameters
    ----------
    e : ap.MouseEvent
        Event instance.
    options : dict
        Optional arguments dictionary.
    """
    rectangle: ap.Rectangle = e.this
    rectangle.fill_color = ap.Color("#f0a")


ap.Stage(
    stage_width=150,
    stage_height=150,
    background_color=ap.Color("#333"),
    stage_elem_id="stage",
)
sprite: ap.Sprite = ap.Sprite()
sprite.graphics.begin_fill(color=ap.Color("#0af"))
rectangle: ap.Rectangle = sprite.graphics.draw_rect(x=50, y=50, width=50, height=50)
rectangle.dblclick(on_double_click)
rectangle.unbind_dblclick(on_double_click)

ap.save_overall_html(dest_dir_path="./unbind_dblclick_basic_usage/")

dblclick API

特記事項: このAPIドキュメントはドキュメントビルド用のスクリプトによって自動で生成・同期されています。そのためもしかしたらこの節の内容は前節までの内容と重複している場合があります。

[インターフェイスの構造] dblclick(self, handler: Callable[[apysc._event.mouse_event.MouseEvent, ~_Options], NoneType], *, options: Union[~_Options, NoneType] = None) -> str


[インターフェイス概要]

ダブルクリックイベントのリスナー設定を追加します。


[引数]

  • handler: _Handler

    • このインスタンスをダブルクリックした際に呼ばれる関数やメソッドのハンドラ。

  • options: dict or None, default None

    • ハンドラに渡される省略が可能な追加のパラメーターとしての辞書。


[返却値]

  • name: str

    • ハンドラ名。


[コードサンプル]

>>> import apysc as ap
>>> def on_double_click(e: ap.MouseEvent[ap.Rectangle], options: dict) -> None:
...     rectangle: ap.Rectangle = e.this
...     rectangle.fill_color = ap.Color("#f0a")
>>> stage: ap.Stage = ap.Stage()
>>> sprite: ap.Sprite = ap.Sprite()
>>> sprite.graphics.begin_fill(color=ap.Color("#0af"))
>>> rectangle: ap.Rectangle = sprite.graphics.draw_rect(
...     x=50, y=50, width=50, height=50
... )
>>> _ = rectangle.dblclick(on_double_click)

[関連資料]

unbind_dblclick API

特記事項: このAPIドキュメントはドキュメントビルド用のスクリプトによって自動で生成・同期されています。そのためもしかしたらこの節の内容は前節までの内容と重複している場合があります。

[インターフェイスの構造] unbind_dblclick(self, handler: Callable[[apysc._event.mouse_event.MouseEvent, ~_Options], NoneType]) -> None


[インターフェイス概要]

指定されたダブルクリックイベントのハンドラー設定を取り除きます。


[引数]

  • handler: _Handler

    • イベント設定を取り除く対象の関数やメソッドなど。


[コードサンプル]

>>> import apysc as ap
>>> def on_double_click(e: ap.MouseEvent[ap.Rectangle], options: dict) -> None:
...     rectangle: ap.Rectangle = e.this
...     rectangle.fill_color = ap.Color("#f0a")
...     rectangle.unbind_dblclick(on_double_click)
>>> stage: ap.Stage = ap.Stage()
>>> sprite: ap.Sprite = ap.Sprite()
>>> sprite.graphics.begin_fill(color=ap.Color("#0af"))
>>> rectangle: ap.Rectangle = sprite.graphics.draw_rect(
...     x=50, y=50, width=50, height=50
... )
>>> _ = rectangle.dblclick(on_double_click)

unbind_dblclick_all API

特記事項: このAPIドキュメントはドキュメントビルド用のスクリプトによって自動で生成・同期されています。そのためもしかしたらこの節の内容は前節までの内容と重複している場合があります。

[インターフェイスの構造] unbind_dblclick_all(self) -> None


[インターフェイス概要]

全てのダブルクリックイベント設定を取り除きます。


[コードサンプル]

>>> import apysc as ap
>>> def on_double_click(e: ap.MouseEvent[ap.Rectangle], options: dict) -> None:
...     rectangle: ap.Rectangle = e.this
...     rectangle.fill_color = ap.Color("#f0a")
...     rectangle.unbind_dblclick_all()
>>> stage: ap.Stage = ap.Stage()
>>> sprite: ap.Sprite = ap.Sprite()
>>> sprite.graphics.begin_fill(color=ap.Color("#0af"))
>>> rectangle: ap.Rectangle = sprite.graphics.draw_rect(
...     x=50, y=50, width=50, height=50
... )
>>> _ = rectangle.dblclick(on_double_click)