問題タブ [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.
qml - 親から子への MouseArea イベントの伝播
ポップアップが開いたときに特定のボタンでのアクションを防ぐために、画面全体を取得するグローバルなMouseArea
mouseAreaRootがあります。
QML
この global の下のオブジェクト内に、メニューのクリックを処理MouseArea
する入れ子になったMouseArea
nestedMenuMouseAreaがあります。
問題は、メニューをクリックすると、マウス イベントがmouseAreaRoot
ではなくにリダイレクトされることnestedMenuMouseArea
です。MouseArea
グローバルは画面全体をカバーするため、これは予想される動作です。
他のオブジェクトに対するアクションを防ぐmouseAreaRootの効果から、nestedMenuMouseAreaを除外したいと思います。QML
PropagateComposedEvents属性について読みましたが、 child から parentにしか機能しないようです。
私は反対のことを望みます: mouseAreaRoot からネストされたMenuMouseAreaへのクリックを検出し、そのコードをトリガーするためにイベントをそれにディスパッチします。onClicked
qt - QML の ShapePath で MouseArea を使用するにはどうすればよいですか?
現在、QML のシェイプを使用してより高度なコンポーネントを描画する方法を学んでいます。次のようなボタンを作成しようとしています。
Shape コンポーネントに MouseArea を適用しようとすると、MouseArea が Shape のイベントをキャッチできないようです。これが私のコードです:
だから私の質問は: そもそも Shape/ShapePath をクリック可能にすることは可能ですか? もしそうなら、どうやってそうするのですか?
qt - QML MouseArea: プログラムでマウスを MouseArea に移動した後、onExited がトリガーされない
この問題は Windows で発生しますが、Linux では発生しません。他のプラットフォームは試していません。
QCursor
マウスの位置を設定するために使用するカスタム クラス (以下のコード) があります。
問題は次のコード ( repo ) にあります。
問題を再現する手順:
- ウィンドウ上でマウス ダウンします。カーソルが画面の左上に移動し、
onExited
発火します。 - マウス ボタンを離します。カーソルがウィンドウの中央にジャンプします。
- ウィンドウの外にマウスを移動します。
onExited
ユーザーがウィンドウの外にマウスを移動すると、もう一度起動する必要がありますが、起動しません。私ができる方法はありますか
- 発火させるか、
- そうでなければ、マウスがマウス領域の外に移動したことを検出しますか?
onPositionChanged
それでも発火しますが、これを使用して、マウスがMouseArea
離れたときではなく、の端に近づいたことを検出することしかできません。
手動で特殊なケースの位置チェックを行う方法として、上にグローバルをオーバーレイし、MouseArea
すべてのイベントを通過させようとしましたが、ホバー イベントを通過させることができませんでした。
マウス位置を設定するクラス:
このクラスをメイン関数で QML の型として登録します。
その後、QML にインポートして使用できます。