• PyQt5 无边框窗口重新定义鼠标事件


    PyQt5 无边框窗口重新定义鼠标事件

    #! /usr/bin/env python

    # -*- coding:utf-8 -*-

    import sys

    from PyQt5.QtWidgets import QApplication, QWidget

    from PyQt5.QtCore import Qt 

    from PyQt5.QtGui import QCursor

    class NoBorderWindow(QWidget):

        def __init__(self):

            super().__init__()

            self.window_UI()

            self.qss()

        def window_UI(self):

            self.resize(600, 200) 

            self.setWindowFlags(Qt.FramelessWindowHint)

        def qss(self):

            self.qssfile = "./qss/noborder.qss"

            self.style = CommonStyleSheet.loadqss(self.qssfile)

            self.setStyleSheet(self.style)

        # 重新定义鼠标事件

        def mousePressEvent(self, QMouseEvent):

            if QMouseEvent.button() == Qt.LeftButton:

                self.drag = True

                self.dragPosition = QMouseEvent.globalPos() - self.pos()

                QMouseEvent.accept()

                self.setCursor(QCursor(Qt.PointingHandCursor))

        def mouseMoveEvent(self, QMouseEvent):

            if Qt.LeftButton and self.drag:

                self.move(QMouseEvent.globalPos() - self.dragPosition)

                QMouseEvent.accept()

        def mouseReleaseEvent(self, QMouseEvent):

            self.drag = False

            QMouseEvent.accept()

            self.setCursor(QCursor(Qt.ArrowCursor))

    class CommonStyleSheet:

        def __init__(self):

            pass

        @staticmethod

        def loadqss(style):

            with open (style, "r", encoding="utf-8") as f:

                return f.read()

    if __name__ == "__main__":

        app = QApplication(sys.argv)

        win = NoBorderWindow()

        win.show()

        sys.exit(app.exec_())

    Qss文件:

    #w{background-image:url(./images/bg.gif);}

    QWidget{background-color: greenyellow;}

     

  • 相关阅读:
    raspberry pi (树莓PI)使用socket向PC发送视频流
    树莓PI交叉编译BOOST库(asio网络例子)
    远程调试树莓PI
    opencv车速检测
    屏蔽同步(JAVA)
    linux常用命令记录
    虚拟机中Ubuntu设置固定IP方法
    java笔记01-反射
    java笔记00-目录
    mysql由于外键关联无法删除数据
  • 原文地址:https://www.cnblogs.com/tylerwu/p/12814447.html
Copyright © 2020-2023  润新知