Qt如何实现苹果状态切换按钮的方法

  介绍

这篇文章将为大家详细讲解有关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如何实现苹果状态切换按钮的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

Qt如何实现苹果状态切换按钮的方法