Qt之界面出现、消失动画效果
在学习Qt的这2、3个月里,对Qt越发感兴趣,从刚开始的盲目、无所适从到现在的学习、研究、熟练、掌握的过程中,我学到了很多东西,也学会了如何通过自学让自己更加成熟、强大起来,如何更有效地提高自己学习、工作效率。
关于Qt界面的出现消失效果,我简单介绍两种方法。
1、
(1)界面出现
将下面这段代码放在界面的构造函数当中就行
//界面动画,改变透明度的方式出现0 - 1渐变
QPropertyAnimation *animation = new QPropertyAnimation(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()));
return true;
}
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();
}
对比看来,第二种方法比较笨拙,而且效率差,所以优先选择方法一,其实学习就是一个累积的过程,没有对比就没有进步,只要是可以行通的,不妨多下点功夫研究一下,条条大路通罗马,知识在与钻研、分享!
Qt之界面出现、消失动画效果的更多相关文章
- Qt之界面出现、消失动画效果(简单好用)
在学习Qt的这2.3个月里,对Qt越发感兴趣,从刚开始的盲目.无所适从到现在的学习.研究.熟练.掌握的过程中,我学到了很多东西,也学会了如何通过自学让自己更加成熟.强大起来,如何更有效地提高自己学习. ...
- 12个来自 Codrops 的创新交互和动画效果
产品的用户体验是否被用户所接受,很大一部分取决于交互界面的设计,交互界面设计是整个产品设计中的核心,对于产品品质有着决定性的影响.这里集合了12个来自 Codrops 的创新的界面交互和动画效果,值得 ...
- Qt之对话框消失动画
一.效果展示 最近做了一个提示框消失的功能,觉着挺有意思,以前一直以为Qt子窗口不能做淡出效果,其实Qt的淡出功能已经帮我们封装好了,我们仅仅只需要几行代码就可以做出酷炫的窗口关闭效果,写此篇文章的时 ...
- Qt动画效果展示(文艺IT男)
该程序使用应用程序单窗口,主窗口继承于QMainWindow:主窗口有5个QToolButton部件(窗口底部的四个以及窗口中央的一个),单击窗口底部的QToolButton部件可以使窗口中央的那个Q ...
- Qt动画效果的实现,QPropertyAnimation
Qt动画架构中的主要类如下图所示: 动画框架由基类QAbstractAnimation和它的两个儿子QVariantAnimation和QAnimationGroup组成.QAbstractAnima ...
- ACtivity实现欢迎界面并添加动画切换效果
先看效果: 中间切换动画没来得及截图,凑合着看吧. 主要是java代码的实现: Welcom.java package kehr.activity.welcome; import android.ap ...
- setAnimationStyle实现的popwindow显示消失的动画效果
摘要 popwindow通过setAnimationStyle(int animationStyle)函数来设置动画效果 android:windowEnterAnimation表示进入窗口动画 an ...
- 【Android UI设计与开发】第03期:引导界面(三)仿微信引导界面以及动画效果
基于前两篇比较简单的实例做铺垫之后,这一篇我们来实现一个稍微复杂一点的引导界面的效果,当然也只是稍微复杂了一点,对于会的人来说当然还是so easy!正所谓会者不难,难者不会,大概说的就是这个意思了吧 ...
- Xcode界面切换动画效果
CATransition *animation = [CATransition animation]; [animation setDuration:0.2f]; [animation setTimi ...
随机推荐
- Phonegap-----Media
Everything in the code: <!DOCTYPE html> <html> <head> <title>Media Example&l ...
- POJ 3667 splay区间盘整运动
Hotel Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 12446 Accepted: 5363 Descriptio ...
- java实现文件夹(包括其中的子文件夹、子文件)的复制——递归
这是学校java课的一道实验题,题目如下:编程,根据指定的源和目标位置,完成指定文件或文件夹(包括其中的子文件夹.子文件)的复制. 以下是我的实现,使用了递归: package com.simon.m ...
- Identifiers
Identifier An identifier is an arbitrarily long sequence of digits, underscores, lowercase and upper ...
- 我的Python成长之路---GitHub使用之注册GitHub并安装Git客户端
一.注册GitHub账号 进入GitHub官方网站,输入用户名.邮箱地址及密码,点击“Sign up for GitHub”. 选择免费的,不要问我为什么,除非有钱任性选择付费版 验证邮箱地址并激活G ...
- springMVC用法 以及一个简单的基于springMVC hibernate spring的配置
替代struts 1 web.xml中配置springmvc中央控制器 <?xml version="1.0" encoding="UTF-8"?> ...
- 安卓Launcher之获取手机安装的应用列表,安卓launcher
Launcher中最主要的就是获取所有应用列表的入口以及图标,一般获取的方法有两种: PackageInfo ResolveInfo 运行获取所有APP的Launcher并且允许进行点击事件,进入到应 ...
- Android跟蓝牙耳机建立连接有两种方式
Android 跟蓝牙耳机建立连接有两种方式. 1. Android 主动跟蓝牙耳机连BluetoothSettings 中和蓝牙耳机配对上之后, BluetoothHeadsetService 会收 ...
- 网页制作之html基础学习1-简介
学习网页制作主要分为三大块 1.HTML 超文本标记语言( 全称:Hyper Text Markup Language) 专门编辑静态网页 2.CSS 网页美化:是HTML控制的样式 ...
- android 图片尺寸 资料