前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python pyqt5 窗体动画效果

python pyqt5 窗体动画效果

作者头像
用户5760343
发布2019-07-28 14:56:44
1.7K0
发布2019-07-28 14:56:44
举报
文章被收录于专栏:sktjsktj

image.png

-- coding: utf-8 --

""" 【简介】 不规则窗体的动画实现

"""

import sys from PyQt5.QtWidgets import QApplication, QWidget from PyQt5.QtGui import QPixmap, QPainter, QCursor from PyQt5.QtCore import Qt, QTimer

class ShapeWidget(QWidget): def init(self, parent=None): super(ShapeWidget, self).init(parent) self.i = 1 self.mypix() self.timer = QTimer() self.timer.setInterval(500) # 500毫秒 self.timer.timeout.connect(self.timeChange) self.timer.start()

代码语言:javascript
复制
# 显示不规则 pic
def mypix(self):
    self.update()
    if self.i == 5:
        self.i = 1
    self.mypic = {1: './images/left.png', 2: "./images/up.png", 3: './images/right.png', 4: './images/down.png'}
    self.pix = QPixmap(self.mypic[self.i], "0", Qt.AvoidDither | Qt.ThresholdDither | Qt.ThresholdAlphaDither)
    self.resize(self.pix.size())
    self.setMask(self.pix.mask())
    self.dragPosition = None

def mousePressEvent(self, event):
    if event.button() == Qt.LeftButton:
        self.m_drag = True
        self.m_DragPosition = event.globalPos() - self.pos()
        event.accept()
        self.setCursor(QCursor(Qt.OpenHandCursor))

def mouseMoveEvent(self, QMouseEvent):
    if Qt.LeftButton and self.m_drag:
        self.move(QMouseEvent.globalPos() - self.m_DragPosition)
        QMouseEvent.accept()

def mouseReleaseEvent(self, QMouseEvent):
    self.m_drag = False
    self.setCursor(QCursor(Qt.ArrowCursor))

def paintEvent(self, event):
    painter = QPainter(self)
    painter.drawPixmap(0, 0, self.pix.width(), self.pix.height(), self.pix)

# 鼠标双击事件
def mouseDoubleClickEvent(self, event):
    if event.button() == 1:
        self.i += 1
        self.mypix()

# 每500毫秒修改paint
def timeChange(self):
    self.i += 1
    self.mypix()

if name == 'main': app = QApplication(sys.argv) form = ShapeWidget() form.show() sys.exit(app.exec_())

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.07.26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • -- coding: utf-8 --
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档