欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Qt實現(xiàn)蘋果狀態(tài)切換按鈕

 更新時間:2020年08月20日 11:52:23   作者:qcgao  
這篇文章主要為大家詳細介紹了Qt實現(xiàn)蘋果狀態(tài)切換按鈕,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Qt實現(xiàn)蘋果狀態(tài)切換按鈕的具體代碼,供大家參考,具體內容如下

代碼如下

#include "button.h"
#include <QDebug>
 
Button::Button(QWidget *parent) :
 QPushButton(parent)
{
 status = 0;
 span_length = 0;
 rl_flag = false;
 release_flag =true;
 timeline = new QTimeLine;
 connect(timeline,SIGNAL(frameChanged(int)),this,SLOT(timeOut(int)));
}
 
void Button::paintEvent(QPaintEvent *e)
{
 QPainter painter(this);
 painter.setRenderHint(QPainter::Antialiasing, true);
 QPen pen;
 pen.setWidth(2);
 pen.setColor(QColor(219,219,219));
 painter.setPen(pen);
 painter.setBrush(Qt::green);
 painter.drawRoundedRect(1,1,this->width()-2,this->height()-2,30,30);
 
 painter.setBrush(Qt::white);
 painter.setPen(pen);
 
 if(!rl_flag){
  switch(status)
  {
  case 0:painter.drawEllipse(1,1,this->height()-3,this->height()-3);break;
  case 1:painter.drawRoundedRect(1,1,span_length,this->height()-2,30,30);break;
  case 2:painter.drawEllipse(this->width()+3-this->height(),1,this->height()-3,this->height()-3);rl_flag=true;status=0;break;
  }
 }else{
  switch(status)
  {
  case 0:painter.drawEllipse(this->width()+3-this->height(),1,this->height()-3,this->height()-3);break;
  case 1:painter.drawRoundedRect(this->width()-1-span_length,1,span_length,this->height()-2,30,30);break;
  case 2:painter.drawEllipse(1,1,this->height()-3,this->height()-3);rl_flag=false;status=0;break;
  }
 }
}
 
void Button::drawSpan(QPainter painter,int s)
{
 
}
 
void Button::mousePressEvent(QMouseEvent *e)
{
 timeline->setDuration(400);
 span_length = 0;
 status=1;
 if(!rl_flag){
  int r1 = this->height()-3;
  int r2 = (this->width()/4*3)>r1?(this->width()/4*3):r1;
  timeline->setFrameRange(r1,r2);
 }else{
  int r1 = this->height()-3;
  int r2 = (this->width()/4*3)>r1?(this->width()/4*3):r1;//(this->width()/4*1)>r1?(this->width()/4*1):r1;
  timeline->setFrameRange(r1,r2);
 }
 timeline->start();
}
 
void Button::mouseMoveEvent(QMouseEvent *e)
{
}
 
void Button::mouseReleaseEvent(QMouseEvent *e)
{
 timeline->stop();
 status = 2;
 update();
}
 
void Button::timeOut(int x)
{
 status = 1;
 span_length = x;
 update();
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • C++通過boost.date_time進行時間運算

    C++通過boost.date_time進行時間運算

    這篇文章介紹了C++通過boost.date_time進行時間運算的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • C++實現(xiàn)坦克大戰(zhàn)小游戲EGE圖形界面

    C++實現(xiàn)坦克大戰(zhàn)小游戲EGE圖形界面

    這篇文章主要為大家詳細介紹了C++實現(xiàn)坦克大戰(zhàn)小游戲EGE圖形界面,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • C++?RBTree紅黑樹的性質與實現(xiàn)

    C++?RBTree紅黑樹的性質與實現(xiàn)

    紅黑樹是一種二叉搜索樹,但在每個結點上增加一個存儲位表示結點的顏色,可以是Red或Black;通過對任何一條從根到葉子的路徑上各個結點著色方式的限制,紅黑樹確保沒有一條路徑會比其他路徑長出倆倍,因而是平衡的
    2023-03-03
  • c++ 結構體內存對齊基本概念及示例

    c++ 結構體內存對齊基本概念及示例

    這篇文章主要介紹了c++ 結構體內存對齊基本概念及示例,幫助大家更好的理解和學習c++,感興趣的朋友可以了解下
    2020-12-12
  • C語言教程之數(shù)組詳解

    C語言教程之數(shù)組詳解

    這篇文章主要為大家介紹了C語言教程之數(shù)組,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • C語言設計簡易電話簿

    C語言設計簡易電話簿

    這篇文章主要為大家詳細介紹了C語言設計簡易電話簿,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • C語言深入講解鏈表的使用

    C語言深入講解鏈表的使用

    當我們在寫一段代碼時,如果要頻繁的在一塊區(qū)域進行插入或者刪除操作時,會發(fā)現(xiàn)用數(shù)組實現(xiàn)會比較復雜,這時候我們就要用另一種數(shù)據(jù)結構,鏈表來實現(xiàn)
    2022-05-05
  • C++你最好不要做的幾點小結

    C++你最好不要做的幾點小結

    整理如下,主要是方便剛開始接觸c++的朋友
    2013-01-01
  • C語言字符串函數(shù)介紹與模擬實現(xiàn)詳解

    C語言字符串函數(shù)介紹與模擬實現(xiàn)詳解

    這篇文章主要介紹了C語言實現(xiàn)字符串操作函數(shù)的實例的相關資料,開發(fā)程序的時候經常使用到一些字符串函數(shù),例如求字符串長度,拷貝字符串……,需要的朋友可以參考下
    2021-09-09
  • C語言面試C++字符串替換空格示例

    C語言面試C++字符串替換空格示例

    這篇文章主要介紹了C語言面試中C++字符串替換空格示例,文中給出了基本上可以拿下offer的代碼,有需要的朋友可以借鑒參考下,希望大家都能早日拿到心儀的offer
    2021-09-09

最新評論