迷惑な動作をする狭いサイズ変更ハンドルを実装しています。マウスがハンドルの真上にあるときのカーソルの形状は期待どおりですが、ハンドルのドラッグが開始されると、カーソルの形状に一貫性がなくなります。これには 2 つの原因があります。
カーソルが速く移動し、ハンドルが「追いつく」までハンドルの前に移動する場合 (または「fluid qml」が流動的すぎる場合) - カーソルの形状が急速に変化して点滅するため、これは特に厄介です。
カーソルがハンドルの許可された自由度の外に移動したとき
ドキュメントを調べましたが、プレスが離されるまでカーソルをロックすることについては何も含まれていないようです。
私はそれを修正するためのハックを見つけることができました-ダミーのオーバーレイMouseArea
を使用してacceptedButtons: Qt.NoButton
-これは実際にはカーソルの一貫性を偽造するのに役立ちますが、それ自体の問題があります。ハンドルがオーバーレイ マウス領域の下にあるため、オーバーレイ マウス領域があると、カーソルがハンドル上にあるときにサイズ変更形状に変更できません。カーソルの形状をまったく変更することはできません。そのため、形状のサイズ変更はハンドルがクリックされた後にのみ開始されますが、これは理想とはほど遠いものです。オーバーレイ マウス領域を に設定してenabled: false
も、それは変わりません。下にあるマウス領域からのカーソル形状の変更をブロックし続けます。オーバーレイ マウス領域のサイズを 0x0 に設定するなどの回避策もありますが、これはちょっと見苦しいです。
理想的には、マウス領域がその領域の内外にあるかどうかに関係なく、マウス領域が押されるまでカーソルの形状が持続する必要があります。カーソルの形状を維持する必要があります。たとえば、ウィンドウのサイズ変更ハンドルを動かして、ウィンドウのサイズを最小サイズよりも小さく変更しても、プレスを放すまでは形状が変更されたままになります。
私には、実装に欠陥があるようですMouseArea
-押している間はカーソルの形状が保持されず、マウス領域が無効になっていてもカーソルの形状が変更されます。