pyqt5 将页面窗口变成可拖动的
时间: 2023-11-21 09:06:01 浏览: 45
您可以通过设置窗口的样式来使其变成可拖动的。具体实现方法如下:
```python
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtCore import Qt
class MyWidget(QWidget):
def __init__(self):
super().__init__()
# 设置窗口样式为无边框
self.setWindowFlags(Qt.FramelessWindowHint)
def mousePressEvent(self, event):
# 鼠标左键按下时获取全局坐标和窗口坐标
if event.button() == Qt.LeftButton:
self.m_flag = True
self.m_Position = event.globalPos() - self.pos()
event.accept()
def mouseMoveEvent(self, QMouseEvent):
# 判断鼠标左键是否按下,若按下则移动窗口
if Qt.LeftButton and self.m_flag:
self.move(QMouseEvent.globalPos() - self.m_Position)
QMouseEvent.accept()
def mouseReleaseEvent(self, QMouseEvent):
# 鼠标左键松开时将标志位设置为False
self.m_flag = False
if __name__ == '__main__':
app = QApplication([])
widget = MyWidget()
widget.show()
app.exec_()
```
这段代码中,我们首先将窗口的样式设置为无边框,然后重写了`mousePressEvent`、`mouseMoveEvent`和`mouseReleaseEvent`三个方法,实现了鼠标拖动窗口的功能。