使无框窗口可移动

问题描述 投票:0回答:1

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

qt
1个回答
0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.