問題タブ [mousearea]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
895 参照

qml - 親から子への MouseArea イベントの伝播

ポップアップが開いたときに特定のボタンでのアクションを防ぐために、画面全体を取得するグローバルなMouseArea mouseAreaRootがあります。

QMLこの global の下のオブジェクト内に、メニューのクリックを処理MouseAreaする入れ子になったMouseArea nestedMenuMouseAreaがあります。

問題は、メニューをクリックすると、マウス イベントがmouseAreaRootではなくにリダイレクトされることnestedMenuMouseAreaです。MouseAreaグローバルは画面全体をカバーするため、これは予想される動作です。

他のオブジェクトに対するアクションを防ぐmouseAreaRootの効果から、nestedMenuMouseAreaを除外したいと思います。QML

PropagateComposedEvents属性について読みましたが、 child から parentにしか機能しないようです。

私は反対のことを望みます: mouseAreaRoot からネストされたMenuMouseAreaのクリックを検出し、そのコードをトリガーするためにイベントをそれにディスパッチします。onClicked

0 投票する
1 に答える
572 参照

qt - QML の ShapePath で MouseArea を使用するにはどうすればよいですか?

現在、QML のシェイプを使用してより高度なコンポーネントを描画する方法を学んでいます。次のようなボタンを作成しようとしています。

私のカスタムボタン

Shape コンポーネントに MouseArea を適用しようとすると、MouseArea が Shape のイベントをキャッチできないようです。これが私のコードです:

だから私の質問は: そもそも Shape/ShapePath をクリック可能にすることは可能ですか? もしそうなら、どうやってそうするのですか?

0 投票する
1 に答える
312 参照

qt - QML MouseArea: プログラムでマウスを MouseArea に移動した後、onExited がトリガーされない

この問題は Windows で発生しますが、Linux では発生しません。他のプラットフォームは試していません。

QCursorマウスの位置を設定するために使用するカスタム クラス (以下のコード) があります。

問題は次のコード ( repo ) にあります。

問題を再現する手順:

  1. ウィンドウ上でマウス ダウンします。カーソルが画面の左上に移動し、onExited発火します。
  2. マウス ボタンを離します。カーソルがウィンドウの中央にジャンプします。
  3. ウィンドウの外にマウスを移動します。

onExitedユーザーがウィンドウの外にマウスを移動すると、もう一度起動する必要がありますが、起動しません。私ができる方法はありますか

  1. 発火させるか、
  2. そうでなければ、マウスがマウス領域の外に移動したことを検出しますか?

onPositionChangedそれでも発火しますが、これを使用して、マウスがMouseArea離れたときではなく、の端に近づいたことを検出することしかできません。

手動で特殊なケースの位置チェックを行う方法として、上にグローバルをオーバーレイし、MouseAreaすべてのイベントを通過させようとしましたが、ホバー イベントを通過させることができませんでした。


マウス位置を設定するクラス:

このクラスをメイン関数で QML の型として登録します。

その後、QML にインポートして使用できます。