介绍
这篇文章将为大家详细讲解有关Qt如何实现苹果状态切换按钮的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
代码如下
# include“button.h" # include & lt; QDebug> 按钮::按钮(QWidget *父母): QPushButton(父) { 状态=0; span_length=0; rl_flag=false; release_flag=true; 时间=new QTimeLine; 连接(时间、信号(frameChanged (int)),这个槽(超时(int))); } 空白按钮:paintEvent (QPaintEvent * e) { QPainter画家(这个); 画家。setRenderHint (QPainter:抗锯齿,真实); QPen笔; pen.setWidth (2); pen.setColor (QColor (219219219)); painter.setPen(笔); painter.setBrush (Qt:绿色); painter.drawRoundedRect(1, - 1,这→宽度()2,这个→高度()2、30、30); painter.setBrush (Qt:白色); painter.setPen(笔); 如果(! rl_flag) { 开关(状态) { 例0:painter.drawEllipse(1, - 1,这→高度()3,这→高度()3);断裂; 案例1:painter.drawRoundedRect (1,1, span_length→高度()2、30、30);断裂; 案例2:painter.drawEllipse(这→宽度()+本→高度(),1,这→高度()3,这→高度()3);rl_flag=true;状态=0;断裂; } 其他}{ 开关(状态) { 例0:painter.drawEllipse(这→宽度()+本→高度(),1,这→高度()3,这→高度()3);断裂; 案例1:painter.drawRoundedRect(这→宽度()1-span_length, 1, span_length,这→高度()2、30、30);断裂; 案例2:painter.drawEllipse(1, - 1,这→高度()3,这→高度()3);rl_flag=false;状态=0;断裂; } } } 空白按钮::drawSpan (QPainter画家,int年代) { } 空白按钮:mousePressEvent (QMouseEvent * e) { 时间轴→setDuration (400); span_length=0; 状态=1; 如果(! rl_flag) { int r1=这→高度()3; int r2=(这个→宽度()/4 * 3)祝辞r1& # 63;(这个→宽度()/4 * 3):r1; 时间轴→setFrameRange (r1, r2); 其他}{ int r1=这→高度()3; int r2=(这个→宽度()/4 * 3)祝辞r1& # 63;(这个→宽度()/4 * 3):r1;//(这个→宽度()/4 * 1)祝辞r1& # 63;(这个→宽度()/4 * 1):r1; 时间轴→setFrameRange (r1, r2); } 时间轴→开始(); } 空白按钮:摇干(QMouseEvent * e) { } 空白按钮:mouseReleaseEvent (QMouseEvent * e) { 时间轴→停止(); 状态=2; update (); } 空白按钮::超时(int x) { 状态=1; span_length=x; update (); }
关于Qt如何实现苹果状态切换按钮的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。