百度搜了大部分都是pyqt5的。或者6.2 6.0版本的,下面演示demo
from PyQt6.QtCore import Qt, QPointF, QPoint
from PyQt6.QtWidgets import QApplication, QMainWindow, QWidget
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 设置窗口无边框
self.setWindowFlags(Qt.WindowType.FramelessWindowHint)
# 创建一个子窗口
self.widget = QWidget(self)
self.widget.setGeometry(0, 0, 200, 200)
# 设置子窗口背景颜色
self.widget.setStyleSheet("background-color: red;")
# 记录鼠标按下时的坐标
self.mouse_pos = None
def mousePressEvent(self, event):
# 鼠标按下时记录坐标
self.mouse_pos = event.globalPosition()
def mouseMoveEvent(self, event):
# 鼠标移动时计算移动距离
if self.mouse_pos:
diff = event.globalPosition() - self.mouse_pos
self.move(self.pos() + diff.toPoint())
self.mouse_pos = event.globalPosition()
def mouseReleaseEvent(self, event):
# 鼠标释放时清空坐标
self.mouse_pos = None
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
window.show()
app.exec()