我正在使用Qt中的QWindow对象。设置无框标志后,窗口将固定为其默认位置。无论如何都要回到设置此标志时丢失的可移动性。我尝试了几种不同的方法,但它们都需要move()函数,它似乎只适用于QWidget对象
你可以继承QWidget
并覆盖mouseMoveEvent
,mousePressEvent
和mouseReleaseEvent
。按下鼠标按钮,跟踪从光标(中心或其他)到光标的距离;如果仍然按下按钮,则移动鼠标时移动它。
我会通过添加一个bool tracking
成员变量和一个QPoint delta
变量来跟踪移动窗口的时间和距离。
您可以使用它来添加自定义样式标题栏;继承自QWidget并添加如上所述的所有修剪并让它移动它最远的祖先(父或父父,只要它不是null)。