按钮旋转

											按钮旋转
开发工具:VisualStudio2015     关键技术:WPF   作者:纳兹     撰写时间:2020年8月9日
首先进行页面布局,下面用栈式面板进行布局:
<StackPanel>
    <Button Content="臭大肥"/>
    <Button Content="坏大肥"/>
    <Button Content="郭大肥"/>
    <Button Content="郭小肥"/>
</StackPanel>
效果如下图:![在这里插入图片描述](https://img-blog.csdnimg.cn/20200809194013709.PNG#pic_center)
<Window.Resources> 
    <Style TargetType="{x:Type Button}">
布局按钮控件的宽度、高度、边距、字体大小、背景颜色等:
        <Setter Property="Width" Value="100"/>
        <Setter Property="Height" Value="50"/>
        <Setter Property="Margin" Value="10"/>
        <Setter Property="FontSize" Value="20"/>
        <Setter Property="Background" Value="SteelBlue"/>
Render :渲染&
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用QPropertyAnimation来实现按钮旋转动画。下面是一个简单的示例代码: ```python from PyQt5.QtWidgets import QApplication, QWidget, QPushButton from PyQt5.QtCore import QPropertyAnimation, pyqtProperty, QPointF, QRectF, QEasingCurve from PyQt5.QtGui import QPainter class RotatingButton(QPushButton): def __init__(self, parent=None): super().__init__(parent) self._angle = 0 # 定义角度属性 def angle(self): return self._angle def setAngle(self, angle): self._angle = angle self.update() angle = pyqtProperty(float, angle, setAngle) # 绘制按钮 def paintEvent(self, event): painter = QPainter(self) painter.translate(self.rect().center()) painter.rotate(self._angle) painter.translate(-self.rect().center()) super().paintEvent(event) # 开始旋转动画 def startRotation(self): anim = QPropertyAnimation(self, b"angle") anim.setStartValue(0.0) anim.setEndValue(360.0) anim.setDuration(1000) anim.setEasingCurve(QEasingCurve.InOutQuad) anim.start() if __name__ == '__main__': app = QApplication([]) w = QWidget() btn = RotatingButton("Rotate Me", w) btn.setGeometry(QRectF(50, 50, 100, 50)) btn.startRotation() w.show() app.exec_() ``` 这个示例代码创建了一个RotatingButton类,这个类继承自QPushButton并添加了一个角度属性。在按钮的paintEvent中,我们将按钮的绘制坐标系旋转了一定角度,然后调用了父类QPushButton的paintEvent方法。在开始旋转动画时,我们使用QPropertyAnimation来改变按钮的角度属性,并设置了动画的开始值、结束值、持续时间和缓动曲线。最后,我们创建了一个RotatingButton实例并调用了startRotation方法来开始旋转动画。 你可以根据自己的需求修改这个示例代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值