使用自定义标题小部件时QDockWidget移动问题

时间:2010-09-06 11:31:26

标签: qt qdockwidget

我想创建一个带有自定义标题小部件的停靠小部件。该自定义标题小部件有我自己的图标(最大化,最小化,关闭等)。

源代码就是这样:

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

当我运行程序时,Dock小部件显示得恰当但不幸的是我无法移动停靠小部件(它处于浮动状态)。可能是什么问题?

P.S。当我不使用自定义标题小部件时,我可以移动停靠小部件。

谢谢...

1 个答案:

答案 0 :(得分:3)

setTitleBarWidget()的Qt documentation说:

  

未明确显示的鼠标事件   由标题栏小部件处理必须   被呼叫忽略   QMouseEvent ::忽略()。这些事件   然后传播到QDockWidget   父,在中处理它们   通常的方式,移动时的标题   栏被拖动,对接和解除对接   当它被双击等时

所以我想你需要在你的MyDockTitle类中添加一些QMouseEvent :: ignore()调用。