我是靠谱客的博主 柔弱树叶,最近开发中收集的这篇文章主要介绍pyqt所有的QEasingCurve,pyqt插帧器,pyqt发光效果,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

PyQt6.QtCore.QEasingCurve

效果图:
在这里插入图片描述

上代码:

import sys
from PyQt6.QtCore import Qt, QEasingCurve, QVariantAnimation
from PyQt6.QtGui import QColor
from PyQt6.QtWidgets import QApplication, QWidget, QPushButton, QGraphicsDropShadowEffect, 
    QMainWindow, QScrollArea, QHBoxLayout, QVBoxLayout


class MyWindows(QMainWindow):
    def __init__(self):
        super(MyWindows, self).__init__()
        self.setWindowTitle('Pyqt 所有 QEasingCurve')
        self.statusBar()
        # 初始化ui
        self.init_ui()

    def init_ui(self):
        # 中心widget
        center_widget = QWidget()
        center_widget_layout = QHBoxLayout()
        center_widget.setLayout(center_widget_layout)

        # 主角:QScrollArea
        area = QScrollArea()
        area.setMinimumSize(400, 400)
        area.setAlignment(Qt.AlignmentFlag.AlignHCenter)

        # QScrollArea包裹的widget: inner_widget
        inner_widget = QWidget()
        layout = QVBoxLayout()
        layout.setSpacing(300)
        inner_widget.setLayout(layout)

        layout.addSpacing(100)
        # 把所有QEasingCurve.Type取出来
        for type_s in dir(QEasingCurve.Type):
            if not type_s.startswith("__") and type_s not in ["BezierSpline", 'Custom', 'TCBSpline']:
                easing_curve_type = getattr(QEasingCurve.Type, type_s)

                # 按钮button
                button = QPushButton()
                button.setFixedSize(100, 100)
                button.setText(type_s)
                button.setStatusTip(type_s)

                # 设置绿光阴影
                effect = self.set_shadow_effect(button)
                # 给button添加动画
                self.set_animation(button, easing_curve_type, effect)
                # 把button添加到inner_widget的布局中
                layout.addWidget(button)

        layout.addSpacing(100)

        # QScrollArea setWidget必须放在widget添加完view后面,否则不会有滚动条,QScrollArea里也不会有内容
        area.setWidget(inner_widget)

        # 把滚动条添加到center_widget的布局中
        center_widget_layout.addWidget(area)
        self.setCentralWidget(center_widget)

    def set_shadow_effect(self, button):
        effect = QGraphicsDropShadowEffect(self)
        effect.setColor(QColor("#00ff00"))
        effect.setOffset(0, 0)
        effect.setBlurRadius(0)
        button.setGraphicsEffect(effect)
        return effect

    def set_animation(self, button, curve_type, effect):
        animation = QVariantAnimation(button)
        animation.setDuration(2000)
        animation.setStartValue(0)
        animation.setKeyValueAt(0.5, 50)
        animation.setEndValue(0)
        animation.setLoopCount(-1)

        animation.valueChanged.connect(lambda x: self.value_changed(x, effect))
        # 设置曲线
        animation.setEasingCurve(curve_type)
        animation.start()

    def value_changed(self, value, effect):
        effect.setBlurRadius(value)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MyWindows()
    window.show()
    sys.exit(app.exec())

最后

以上就是柔弱树叶为你收集整理的pyqt所有的QEasingCurve,pyqt插帧器,pyqt发光效果的全部内容,希望文章能够帮你解决pyqt所有的QEasingCurve,pyqt插帧器,pyqt发光效果所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部