pyqt5 官方例子笔记 animate-1

这篇博客详细解读了animatedtiles.py示例,涉及控件布局、自定义形状绘制、资源图片加载及界面动态绘图。通过注释笔记,阐述了QT对象间的依赖关系及QState状态机在动态绘图中的应用。
摘要由CSDN通过智能技术生成

animatedtiles.py
总结:这个小程序,主要涉及到控件的布局(boundingRect Method),形状的绘制(shape函数重载来自定义控件的形状),控件图片的加载(资源文件的引入pyrcc,Button对象将资源对象最为初始化参数),整个界面的大体布局(scene view graphicsitem 各种qt对象之间的依赖关系),动态绘图过程(QState状态机)

注释即是笔记,留作下次的备忘

from PyQt5.QtCore import (pyqtProperty, pyqtSignal, QEasingCurve, QObject,
        QParallelAnimationGroup, QPointF, QPropertyAnimation, qrand, QRectF,
        QState, QStateMachine, Qt, QTimer)
from PyQt5.QtGui import (QBrush, QLinearGradient, QPainter, QPainterPath,
        QPixmap)
from PyQt5.QtWidgets import (QApplication, QGraphicsItem, QGraphicsPixmapItem,
        QGraphicsRectItem, QGraphicsScene, QGraphicsView, QGraphicsWidget,
        QStyle)

import animatedtiles_rc


# PyQt doesn't support deriving from more than one wrapped class so we use
# composition and delegate the property.
class Pixmap(QObject):
    def __init__(self, pix):
        #父类初始化
        super(Pixmap, self).__init__()

        self.pixmap_item = QGraphicsPixmapItem(pix)
        self.pixmap_item.setCacheMode(QGraphicsItem.DeviceCoordinateCache)

    def _set_pos(self, pos):
        self.pixmap_item.setPos(pos)

    # 类似于C# 字段调用方法  python里面property函数
    pos = pyqtProperty(QPointF, fset=_set_pos)


class Button(QGraphicsWidget):
    pressed = pyqtSignal()

    def __init__(self, pixmap, parent_arg=None):
        #QGraphicsWidget :_init__ (self, QGraphicsItem parent = None, Qt.WindowFlags wFlags = 0)
        #The QGraphicsWidget class is the base class for all widget items in a QGraphicsScene
        super(Button, self).__init__(parent_arg)

        self._pix = pixmap
        #设置悬停时间是否接受,系统一直跟随鼠标检测是否悬停在一个控件上
        self.setAcceptHoverEvents(True)
   
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyQt5版本5.9.2是一个Python绑定库,用于创建使用Qt框架的图形用户界面(GUI)应用程序。PyQt5-tools是一个附带的工具集,用于在开发PyQt5应用程序时提供帮助和增强功能。 PyQt5 5.9.2是一个稳定的版本,可以提供可靠的功能和性能。它是PyQt5的最新版本之一,具有许多改进和错误修复。PyQt5可以与Python 3.x版本一起使用,并提供了丰富的类库,以便于开发者创建用户友好的图形界面应用程序。 PyQt5-tools是一个附带的工具集,可以帮助开发者更高效地创建和调试PyQt5应用程序。它包含一些实用程序和辅助工具,如Qt设计师(Qt Designer)、Qt助手(Qt Assistant)等。Qt设计师是一种图形化界面设计器工具,用于快速创建和编辑Qt应用程序的用户界面。Qt助手是一个帮助文档浏览器,提供了对Qt框架文档的良好支持。 通过将PyQt5PyQt5-tools结合使用,开发者可以更轻松地开发PyQt5应用程序。PyQt5-tools提供了一些方便的工具和功能,使开发过程更加高效和简便。尤其是Qt设计师的使用,可以减少手写代码的工作量,加快界面构建的速度。 总结而言,PyQt5 5.9.2是一个稳定版本的PyQt5库,用于创建GUI应用程序,而PyQt5-tools是一个附带的工具集,为PyQt5开发提供了一些实用工具和辅助功能,如Qt设计师和Qt助手。两者结合使用可以提高PyQt5应用程序的开发效率和质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值