QT旋转按钮控件的实现
一、实现需求:鼠标hover时旋转
需求是:实现类似于WINDOWS下,某些软件窗口关闭按钮的样式,
比如下图:WINDOWS某讯电脑管家的关闭按钮,鼠标hover时的效果,鼠标松开时的效果,目前没有要求,也就没实现,但是实现的原理的一样的
实现后的效果如下图:
二、实现方式:计时器做动画
PS:这里仅仅讲述旋转的实现,对于按钮:default样式,hover样式,click样式不做介绍;如果有更好的方式,希望大佬不吝赐教。
方法:
1、使用计时器;每隔一定的时间旋转一定的角度(当前是)
2、到达一定的角度后不再旋转,还原(当前是 90°就停止还原)
3、鼠标 hover 的时候,开始计时,旋转
三、代码实现
代码不全,但是依旧能够理解大概思想。
按钮使用的 QLabel 控件
CloseButton::CloseButton(QWidget *parent): QLabel(parent)
{
// 其它操作
..........
........
default_closePix = QIcon(":/image/ukui-taskview-close-default.png").pixmap(btnSize.width(), btnSize.width()