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

     

  • 相关阅读:
    满屏的宽高纯CSS布局
    截屏上传插件开发流程
    COM ACTIVEX 中的BSTR 类型与其它类型转换
    线程中访问控件
    OOP三言两语
    通过iframe上传
    历年作品点评
    每周进度及工作量统计2016090820160915
    英文词频统计的java实现方法
    四人小组项目——连连看
  • 原文地址:https://www.cnblogs.com/tylerwu/p/12814447.html
Copyright © 2011-2022 走看看