使无框QWindow可移动

时间:2016-03-21 23:17:19

标签: qt

我正在使用Qt中的QWindow对象。 设置无框标志后,窗口将固定为其默认位置。 无论如何都要回到设置此标志时丢失的可移动性。我尝试了几种不同的方法,但它们都需要move()函数,它似乎只适用于QWidget对象

1 个答案:

答案 0 :(得分:0)

您可以继承QWidget并覆盖mouseMoveEventmousePressEventmouseReleaseEvent。按下鼠标按钮,跟踪从光标(中心或其他)到光标的距离;如果仍然按下按钮,则移动鼠标时移动它。

我会通过添加bool tracking成员变量和QPoint delta变量来跟踪移动窗口的时间和距离。

您可以使用它来添加自定义样式标题栏;从QWidget继承并添加如上所述的所有修剪并让它移动它最远的祖先(父或父父,只要它不是空的)。