以下是一个使用 PyQt5 实现鼠标移动 UI 界面的示例代码:

from PyQt5.QtWidgets import QWidget, QApplication
from PyQt5.QtGui import QCursor
from PyQt5.QtCore import Qt

class MovableWidget(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.setWindowFlags(Qt.FramelessWindowHint)
        self.setCursor(QCursor(Qt.SizeAllCursor))

    def mousePressEvent(self, event):
        if event.button() == Qt.LeftButton:
            self.offset = event.pos()

    def mouseMoveEvent(self, event):
        if event.buttons() == Qt.LeftButton:
            x = event.globalX()
            y = event.globalY()
            x_w = self.offset.x()
            y_w = self.offset.y()
            self.move(x - x_w, y - y_w)

if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    w = MovableWidget()
    w.resize(300, 200)
    w.show()
    sys.exit(app.exec_())

该示例中,我们继承了 QWidget 类,并重写了 mousePressEvent() 和 mouseMoveEvent() 方法,实现了窗口的拖拽移动。我们还重写了构造函数 init(),设置了窗口的标志位 Qt.FramelessWindowHint,以隐藏窗口的标题栏和边框,使其看起来像是一个没有边框的窗口。最后,我们将光标设置为 Qt.SizeAllCursor,以显示一个可拖动的光标。

PyQt5 鼠标移动 UI 界面实现:代码示例与解释

原文地址: https://www.cveoy.top/t/topic/nScs 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录