pyqt5设置窗口可拖动
时间: 2023-09-09 07:06:07 浏览: 88
您可以使用setMouseTracking(True)方法来追踪鼠标移动并检查是否有鼠标按下。然后,您可以使用move()方法将窗口移动到新位置。以下是可供参考的示例代码:
```python
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtCore import Qt
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setMouseTracking(True)
def mouseMoveEvent(self, event):
if event.buttons() == Qt.LeftButton:
self.move(self.pos() + event.globalPos() - self.dragPos)
self.dragPos = event.globalPos()
event.accept()
def mousePressEvent(self, event):
if event.button() == Qt.LeftButton:
self.dragPos = event.globalPos()
event.accept()
if __name__ == '__main__':
app = QApplication([])
window = MyWindow()
window.show()
app.exec_()
```
在这个示例中,我们将主窗口子类化,并覆盖了mouseMoveEvent()和mousePressEvent()方法。mouseMoveEvent()方法检查是否有鼠标按下,并使用move()方法将窗口移动到新位置。mousePressEvent()方法记录当前鼠标位置。我们还使用setMouseTracking(True)方法在窗口上启用鼠标追踪。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)