概述
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发光效果所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复