You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyQt6 更新版无边框可拖拽窗口实现代码分享

PyQt6 无边框窗口居中+拖拽移动实现

目前没看到适配PyQt6的对应功能更新代码,这里分享可直接运行的代码片段,实现两个核心功能:

  • 窗口自动居中到屏幕可视区域中心
  • 无边框窗口下支持鼠标拖拽移动

使用说明:请提前从PyQt6.QtCore导入QPoint,以下方法直接写入你自定义的窗口类(继承自QWidget、QMainWindow等PyQt6基础窗口类)即可。

def center(self):
    qr = self.frameGeometry()
    cp = self.screen().availableGeometry().center()
    qr.moveCenter(cp)
    self.move(qr.topLeft())

def mousePressEvent(self, event):
    self.oldPos = event.position().toPoint()

def mouseMoveEvent(self, event):
    delta = QPoint(event.position().toPoint() - self.oldPos)
    self.move(self.x() + delta.x(), self.y() + delta.y())
        
def mouseReleaseEvent(self, event):
    self.oldPos = event.position().toPoint()

需要窗口居中时,在窗口初始化逻辑里直接调用self.center()即可,拖拽逻辑通过重写窗口原生鼠标事件实现,无需额外绑定信号,设置完无边框属性后自动生效。

内容的提问来源于stack exchange,提问作者Myra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 05:03:26