1. 程式人生 > >pyqt5_控件_自定義無邊框窗體拖動

pyqt5_控件_自定義無邊框窗體拖動

spa 窗體拖動 ica 定義 event sta track gets button

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_控件_自定義無邊框窗體拖動