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;}

     

  • 相关阅读:
    Python存储系统(Memcached)
    Python消息队列(RabbitMQ)
    Python的数据库操作(pymysql)
    Python档案袋(列表、元组、字典、集合 )
    Python档案袋(函数与函数装饰器 )
    EOS基础全家桶(五)钱包管理
    EOS基础全家桶(四)启动节点
    EOS基础全家桶(三)资料汇总
    EOS基础全家桶(二)安装
    EOS基础全家桶(一)开篇
  • 原文地址:https://www.cnblogs.com/tylerwu/p/12814447.html
Copyright © 2011-2022 走看看