0

QWidget何もせず、 を提供するだけで、HWND他の の子として追加できる「ダム」が必要QWidgetです。具体的には、マウスカーソルを管理しようとすべきではありません(これは、単にインスタンス化することに関する私の問題ですQWidget)。(動機: インプレースでアクティブ化された ActiveX コントロールがあり、マウス カーソルを時々変更しようとしますが、QWidget がデフォルトに戻すため、ちらつきます)

4

1 に答える 1

1

カーソルの変更を行うコードは QWidget 内にないため、QWidget を変更しても問題は解決しません。internal 内からそれを行うのは QApplication ですQApplication::dispatchEnterLeave(...)。最終的には、それがqt_win_set_cursor仕事をします。

Qt ソースを変更せずにこの動作を変更する方法がすぐにはわかりません。

報告は Qt のバグとして行うことをお勧めします。Qt は、エイリアン ウィジェットを離れたときにネイティブ カーソルが変更されたかどうかを確認する必要があります。変更された場合は、それを保持する必要があります。問題を実際に修正するためのパッチを提供すると、バグが迅速に修正される可能性が高くなります。

回避策:ちらつきを防ぐには、 を使用してアプリケーション全体のカーソル オーバーライドを設定しますQApplication::setCursorOverride()。これにより、ちらつきは修正されますが、コントロールがカーソルを変更できないという問題は修正されません。

于 2012-06-25T13:01:00.887 に答える