zoukankan      html  css  js  c++  java
  • 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;}

     

  • 相关阅读:
    概述各种事务隔离级别发生的影响
    linux内核的经典书籍
    sso 登录,网页跳转的实现方式
    初探移动网站的架构和设计
    C# PrintDocument 打印
    .Text分页技术(1)分页的存储过程分析
    SQL2008使用CTE递归查询批量插入500万数据
    自己写的Web服务器
    OMCS 语音视频框架
    ESFramework4.x
  • 原文地址:https://www.cnblogs.com/tylerwu/p/12814447.html
Copyright © 2011-2022 走看看