1

カスタム タイトル ウィジェットを使用してドック ウィジェットを作成したいと考えています。そのカスタム タイトル ウィジェットには独自のアイコン (最大化、最小化、閉じるなど) があります。

ソース コードは次のようになります。

  QDockWidget *dock = new QDockWidget("name", parent);
  MyDockTitle * titleWidget = new MyDockTitle(dock);
  dock->setTitleBarWidget(titleWidget);

プログラムを実行すると、ドックウィジェットは適切に表示されますが、残念ながらドックウィジェットを移動できません (フローティング状態です)。何が問題になる可能性がありますか?

PS カスタム タイトル ウィジェットを使用しない場合は、ドック ウィジェットを移動できます。

ありがとう...

4

1 に答える 1

3

setTitleBarWidget()のQt ドキュメントには次のように書かれています。

タイトル バー ウィジェットによって明示的に処理されないマウス イベントは、QMouseEvent::ignore() を呼び出して無視する必要があります。これらのイベントは QDockWidget 親に伝達され、通常の方法で処理され、タイトル バーがドラッグされると移動し、ダブルクリックされるとドッキングおよびドッキング解除されます。

したがって、クラスに QMouseEvent::ignore() 呼び出しを追加する必要があると思いますMyDockTitle

于 2010-09-06T14:55:29.560 に答える