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
相关产品推荐
相关产品推荐

