我想创建一个带有自定义标题小部件的停靠小部件。该自定义标题小部件有我自己的图标(最大化,最小化,关闭等)。
源代码就是这样:
QDockWidget *dock = new QDockWidget("name", parent);
MyDockTitle * titleWidget = new MyDockTitle(dock);
dock->setTitleBarWidget(titleWidget);
当我运行程序时,Dock小部件显示得恰当但不幸的是我无法移动停靠小部件(它处于浮动状态)。可能是什么问题?
P.S。当我不使用自定义标题小部件时,我可以移动停靠小部件。
谢谢...
答案 0 :(得分:3)
setTitleBarWidget()的Qt documentation说:
未明确显示的鼠标事件 由标题栏小部件处理必须 被呼叫忽略 QMouseEvent ::忽略()。这些事件 然后传播到QDockWidget 父,在中处理它们 通常的方式,移动时的标题 栏被拖动,对接和解除对接 当它被双击等时
所以我想你需要在你的MyDockTitle
类中添加一些QMouseEvent :: ignore()调用。