pyqt5_控件_自定义无边框窗体拖动

Posted 我是外婆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pyqt5_控件_自定义无边框窗体拖动相关的知识,希望对你有一定的参考价值。

from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
import sys


class Example(QWidget):
    _startPos = None
    _endPos = None
    _isTracking = False

    def __init__(self):
        super().__init__()
        self._initUI()

    def _initUI(self):
        self.setFixedSize(QSize(400, 400))
        self.setWindowFlags(Qt.FramelessWindowHint)  # 无边框
        self.show()

    def mouseMoveEvent(self, e: QMouseEvent):  # 重写移动事件
        self._endPos = e.pos() - self._startPos
        self.move(self.pos() + self._endPos)

    def mousePressEvent(self, e: QMouseEvent):
        if e.button() == Qt.LeftButton:
            self._isTracking = True
            self._startPos = QPoint(e.x(), e.y())

    def mouseReleaseEvent(self, e: QMouseEvent):
        if e.button() == Qt.LeftButton:
            self._isTracking = False
            self._startPos = None
            self._endPos = None


if __name__ == __main__:
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

 

以上是关于pyqt5_控件_自定义无边框窗体拖动的主要内容,如果未能解决你的问题,请参考以下文章

winform form窗体边框颜色怎么设置?

Qt-软件开发-自定义无边框UI界面 Frameless

2021-11-22 WinFrom面试题 在Form中,实现无边框窗体拖动功能?

WPF中鼠标事件MouseLeftButtonDown,MouseLeftButtonUp实现无边框窗体的最大化,还原

猎豹MFC--拖动无边框窗体

CreateWindow创建无边框 可拉伸窗体