打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Qt之界面出现、消失动画效果

Qt之界面出现、消失动画效果

(2013-01-18 10:03:33)
标签:

qt

出现

消失

渐变

动画

杂谈

分类: Qt

   在学习Qt的这2、3个月里,对Qt越发感兴趣,从刚开始的盲目、无所适从到现在的学习、研究、熟练、掌握的过程中,我学到了很多东西,也学会了如何通过自学让自己更加成熟、强大起来,如何更有效地提高自己学习、工作效率。

 

关于Qt界面的出现消失效果,我简单介绍两种方法。

1、

 

(1)界面出现

 

将下面这段代码放在界面的构造函数当中就行

 //界面动画,改变透明度的方式出现0 - 1渐变
 QPropertyAnimation *animation = newQPropertyAnimation(this, "windowOpacity");
 animation->setDuration(1000);
 animation->setStartValue(0);
 animation->setEndValue(1);
 animation->start();

 

(2)界面消失:

 

既然是界面消失,应当是按下关闭按钮时界面消失,如下:

 

//连接关闭按钮信号和槽

QObject::connect(close_button, SIGNAL(clicked()), this,SLOT(closeWidget()));

 

//槽函数如下,主要进行界面透明度的改变,完成之后连接槽close来调用closeEvent事件

bool LoginDialog::closeWidget()
{
   //界面动画,改变透明度的方式消失1 - 0渐变
   QPropertyAnimation *animation= new QPropertyAnimation(this, "windowOpacity");
  animation->setDuration(1000);
  animation->setStartValue(1);
  animation->setEndValue(0);
   animation->start();
   connect(animation,SIGNAL(finished()), this, SLOT(close()));

 

   returntrue;  
}

void LoginDialog::closeEvent(QCloseEvent *)
{
    //退出系统
   QApplication::quit();
}

 

2、

在这里贴出消失时候的代码,其实出现的时候类似

 

界面消失:

void LoginDialog::closeEvent(QCloseEvent *)
{

 for(int i=0; i< 100000; i++)
 {
  if(i<10000)
  {
   this->setWindowOpacity(0.9);
  }
  else if(i<20000)
  {
   this->setWindowOpacity(0.8);
  }
  else if(i<30000)
  {
   this->setWindowOpacity(0.7);
  }
  else if(i<40000)
  {
   this->setWindowOpacity(0.6);
  }
  else if(i<50000)
  {
   this->setWindowOpacity(0.5);
  }
  else if(i<60000)
  {
   this->setWindowOpacity(0.4);
  }
  else if(i<70000)
  {
   this->setWindowOpacity(0.3);
  }
  else if(i<80000)
  {
   this->setWindowOpacity(0.2);
  }
  else if(i<90000)
  {
   this->setWindowOpacity(0.1);
  }
  else
  {
   this->setWindowOpacity(0.0);
  }
 }


 //进行窗口退出
  QApplication::quit();
}

 

 

 

   对比看来,第二种方法比较笨拙,而且效率差,所以优先选择方法一,其实学习就是一个累积的过程,没有对比就没有进步,只要是可以行通的,不妨多下点功夫研究一下,条条大路通罗马,知识在与钻研、分享!

0

喜欢

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
QT界面切换
QT用closeevent事件给窗口添加询问关闭按钮
Qt-4.6 Animation动画实现之状态机
Qt继承自QWidget的界面关闭按钮
第3篇 Qt5基础(三)Qt登录对话框
PyQt5:使用QT设计师设计界面
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服