※この翻訳ドキュメントはスクリプトによって出力・同期されています。内容が怪しそうな場合はGitHubにissueを追加したり英語の原文の確認をお願いします。
dblclick インターフェイス¶
このページではdblclick
(double-click)のインターフェイスについて説明します。
インターフェイス概要¶
dblclick
インターフェイスはSprite
やRectangle
などの任意の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)