QDockWidget проблема перемещения при использовании пользовательского виджета заголовка - PullRequest
1 голос
/ 06 сентября 2010

Я хочу создать виджет-док с настраиваемым виджетом заголовка.Этот пользовательский титульный виджет имеет мои собственные значки (развернуть, свернуть, закрыть и т. Д.)

Исходный код выглядит просто так:

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

Когда я запускаю программу, виджет-док отображается соответствующим образом, но, к сожалению, я не могу переместить виджет-док (он находится в плавающем состоянии).В чем может быть проблема?

PS Когда я не использую пользовательский виджет заголовка, я могу переместить виджет-док.

Спасибо ...

1 Ответ

3 голосов
/ 06 сентября 2010

Документация Qt setTitleBarWidget () гласит:

События мыши, которые не являются явными обрабатывается виджетом в строке заголовка быть проигнорированным звонком QMouseEvent :: игнорировать (). Эти события затем распространить на QDockWidget родитель, который обрабатывает их в обычным образом, движется, когда название планка перетаскивается , стыковка и расстыковка при двойном щелчке и т. д.

Итак, я думаю, вам нужно добавить несколько вызовов QMouseEvent :: ignore () в ваш MyDockTitle класс.

...