Qt之窗口动画(下坠、抖动、透明度)

Qt 设置窗体透明 在音频开发中,窗体多半为半透明、圆角窗体,如下为Qt 5.5 VS2013实现半透明方法总结。 阅读详情

以下内容参考或引用

http://blog.youkuaiyun.com/liang19890820/article/details/51888114

http://blog.youkuaiyun.com/liang19890820


简述

前面几节中我们介绍了关于动画的基本使用,有属性动画、串行动画组、并行动画组。这节我们来实现一些特效,让交互更顺畅。

示例

下面,我们以geometry、pos、windowOpacity属性为例,来实现窗体的下坠、抖动、透明度效果。

效果

这里写图片描述

源码

下坠效果:

通过计算桌面的宽度、高度,来设置动画的起始值和结束值。

void MainWindow::onDropWindow()
{
    QPropertyAnimation *pAnimation = new QPropertyAnimation(this, "geometry");

    QDesktopWidget *pDesktopWidget = QApplication::desktop();
    int x = (pDesktopWidget->availableGeometry().width() - width()) / 2;
    int y = (pDesktopWidget->availableGeometry().height() - height()) / 2;

    pAnimation->setDuration(1000);
    pAnimation->setStartValue(QRect(x, 0, width(), height()));
    pAnimation->setEndValue(QRect(x, y, width(), height()));
    pAnimation->setEasingCurve(QEasingCurve::OutElastic);
    pAnimation->start(QAbstractAnimation::DeleteWhenStopped);
}
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

抖动效果:

获取界面的坐标,然后进行上、下、左、右坐标浮动,通过setKeyValueAt()来设置每一时刻的位置,实现抖动效果。

void MainWindow::onShakeWindow()
{
    QPropertyAnimation *pAnimation = new QPropertyAnimation(this, "pos");
    pAnimation->setDuration(500);
    pAnimation->setLoopCount(2);
    pAnimation->setKeyValueAt(0, QPoint(geometry().x() - 3, geometry().y() - 3));
    pAnimation->setKeyValueAt(0.1, QPoint(geometry().x() + 6, geometry().y() + 6));
    pAnimation->setKeyValueAt(0.2, QPoint(geometry().x() - 6, geometry().y() + 6));
    pAnimation->setKeyValueAt(0.3, QPoint(geometry().x() + 6, geometry().y() - 6));
    pAnimation->setKeyValueAt(0.4, QPoint(geometry().x() - 6, geometry().y() - 6));
    pAnimation->setKeyValueAt(0.5, QPoint(geometry().x() + 6, geometry().y() + 6));
    pAnimation->setKeyValueAt(0.6, QPoint(geometry().x() - 6, geometry().y() + 6));
    pAnimation->setKeyValueAt(0.7, QPoint(geometry().x() + 6, geometry().y() - 6));
    pAnimation->setKeyValueAt(0.8, QPoint(geometry().x() - 6, geometry().y() - 6));
    pAnimation->setKeyValueAt(0.9, QPoint(geometry().x() + 6, geometry().y() + 6));
    pAnimation->setKeyValueAt(1, QPoint(geometry().x() - 3, geometry().y() - 3));
    pAnimation->start(QAbstractAnimation::DeleteWhenStopped);
}
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

透明度效果:

设置每一时刻的透明度值,动画结束时界面还原(透明度再为1)。

void MainWindow::onOpacityWindow()
{
    QPropertyAnimation *pAnimation = new QPropertyAnimation(this, "windowOpacity");
    pAnimation->setDuration(1000);
    pAnimation->setKeyValueAt(0, 1);
    pAnimation->setKeyValueAt(0.5, 0);
    pAnimation->setKeyValueAt(1, 1);
    pAnimation->start(QAbstractAnimation::DeleteWhenStopped);
}
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

是不是很有趣,还不快点儿,实现属于自己的动画。

更多参考


在Qt Designer中实现主窗口对象属性动画效果 然后,我们需要在PyQt5代码中实现主窗口的属性动画效果。接着,我们使用QPropertyAnimation类来创建一个属性动画,设置要动画化的属性和动画的时间。总之,如果你想要在Qt Designer中实现主窗口对象属性动画效果,只需要将animated属性设置为true,并在PyQt5代码中创建一个QPropertyAnimation实例来实现属性动画即可。在上述代码中,我们将窗口的不透明度设置为要动画化的属性,这样在动画运行时,窗口的不透明度就会从0逐渐变为1。 阅读详情

相关推荐

Qt之QPropertyAnimation做一个弹窗特效

【代码】Qt之QPropertyAnimation做一个弹窗特效。

我不是码农的博客~~~ 599

Qt 实现控件抖动 动画窗口抖动 QQ抖动

1.效果 2.简述 用属性动画,设置几个关键帧,也就是不同的位置。 以下代码比较简单,用法: widgetShake(m_pLineEdit,5); //第二个参数是抖动范围 5像素 3.代码 void widgetShake(QWidget *pWidget, int nRange) { int nX = pWidget->x(); int nY = pWidget->y(); QPropertyAnimation *pAnimation = new QProper

我是唐 2054

Qt 之窗口动画(下坠、抖动、透明度)

前面几节中我们介绍了关于动画的基本使用,有属性动画、串行动画组、并行动画组。这节我们来实现一些特效,让交互更顺畅。

青春不老,奋斗不止! 2万+

android窗口管理 罗升阳,Qt之窗口动画(下坠、抖动、透明度)

简述前面几节中我们介绍了关于动画的基本使用,有属性动画、串行动画组、并行动画组。这节我们来实现一些特效,让交互更顺畅。示例下面,我们以geometry、pos、windowOpacity属性为例,来实现窗体的下坠、抖动、透明度效果。效果源码下坠效果:通过计算桌面的宽度、高度,来设置动画的起始值和结束值。void MainWindow::onDropWindow(){QPropertyAnimati...

weixin_30245667的博客 285

Qt 之 QParallelAnimationGroup

QParallelAnimationGroup类提供动画的并行组。

青春不老,奋斗不止! 1万+

Stata实战:DID平行趋势检验完整操作指南(附reghdfe+coefplot代码)

本文提供了一份使用Stata进行DID平行趋势检验的完整实战指南。文章详细讲解了从数据准备、生成相对时间变量,到利用reghdfe命令构建动态效应模型,以及使用coefplot命令进行结果可视化的全流程操作。核心在于通过检验政策前交互项的显著性,验证处理组与对照组是否满足平行趋势假设,为后续因果推断奠定可靠基础。

weixin_29231725的博客 1380

qt 自己封装的动画QPropertyAnimation QSequentialAnimationGroup

https://blog.youkuaiyun.com/liang19890820/article/details/51850579 一去二三里 需要做个小动画,这篇博客写的很好 我记录下自己学到的东西方便以后自己寻找 Qt封装的动画框架可以很容易实现动画效果 1.创建QPropertyAnimation对象。 2.动画对象绑定要实现动画的对象 3.动画对象设置要实现动画的属性 4.设置属性的起始值和终止值 ...

Beyond欣 764

TL494充电器原理与维修 (转)

TL494充电器原理与维修 电动自行车充电器多采用开关 电源,型号虽多,但电路结构大同小异,主要区别在于所选的脉宽调制(PWM)芯片不同如(UC3845、UC3842、SG3524、TL494)。现以佳腾牌 充电器为例,介绍其原理和故障检修方法。 一、电路原理 根据实物测绘的佳腾牌充电器电路原理如图1所示。整机可分为PWM产生和推动电路、功 率开关变换电路、...

weixin_30500663的博客 1815

Qt开发动画

#include <QPropertyAnimation> #include <QDesktopWidget> //下坠 void MainWindow::on_pushButton_clicked() { QPropertyAnimation *pAnimation = new QPropertyAnimation(this, "geometry"); QDesktop...

大AI时代,人性化的信息更加难得可贵 77

用blender为模型贴图并在gazebo中显示

用blender为模型贴图并在gazebo中显示 首先我用的是最新的blender2.92版本,附上链接https://www.blender.org/download/。并设置好简体中文。语言可以在编辑->偏好设置->界面里面设置。 首先界面右上角的摄像头,方块,灯光三个场景全都删除。 接着导入stl格式的模型文件,下面以tianbot_mini上面的激光雷达的模型为例。 导入激光雷达模型后,点击进入上方的UV Editing按钮进入UV编辑界面 此时我面看见网格化的激光雷达模型

qq_48427527的博客 8001

从零到一:基于K375S主控的机械键盘优联无线化改造实战

本文详细记录了基于罗技K375S主控进行机械键盘优联无线化改造的全过程。从改造动机、核心原理与物料准备,到电路设计、PCB打样、焊接调试,逐步拆解了将优联技术集成到自定义机械键盘中的实战步骤。项目最终实现了低延迟、高稳定性且支持多设备连接的优联无线机械键盘,为DIY爱好者提供了高性价比的改造方案。

h0i1j2k3l的博客 601

Qt之窗口下坠、抖动、透明度

1.下坠效果: 通过计算桌面的宽度、高度,来设置动画的起始值和结束值 void MainWindow::onDropWindow() { QPropertyAnimation *pAnimation = new QPropertyAnimation(this, "geometry"); QDesktopWidget *pDesktopWidget = QApplication::desktop(); int x = (pDesktopWidget->availableGeo

我不是码农的博客~~~ 605

单片机NTC热敏电阻测温:六种实用电路方案与选型指南

本文详细介绍了单片机系统中NTC热敏电阻测温的六种实用电路方案,包括分压法、恒流源法、RC充放电法、电桥法、频率法及集成专用IC方案,并提供了关键的硬件选型指南和软件处理技巧,帮助工程师实现高精度、低成本的温度测量。

herb5的博客 821

Qt动画效果

记录下自己使用过程中用到过的动画效果。提示:以下是本篇文章正文内容,下面案例可供参考简单记录下我使用过的动画效果,方便之后需要时查看。

weixin_46246664的博客 7211

计算机专业保研攻略(一):个人定位与院校推荐(必看干货)

写在最前 又是一年保研季,作为过来人,我深知保研就是一场信息战。在保研过程中,需要注意的信息太多了,最初我也因为经验不足,走了不少弯路。我写下这篇博客,希望能帮助更多有需要的同学。 怎样做好保研信息分析 我想举几个发生在我身边真实的例子: A同学推免排名不如B同学,但A保研去向比B同学好很多; C同学在年级里成绩并不算突出,但他拿到了最好的offer; D、E同学纷纷圆梦北大、浙大等名校,但是他们的成绩似乎并不突出; F同学取得了目标院校夏令营offer,但没有拿到本校推免资格; G同学认为自己拿不到推免

乔卿的博客 8390

PyTorch深度学习实战(3)——使用PyTorch构建神经网络

PyTorch 是一个用于构建深度神经网络的库,具有灵活性和可扩展性,可以轻松自定义模型。在本节中,我们将使用 PyTorch 库构建神经网络,利用张量对象操作和梯度值计算更新网络权重,并利用 Sequential 类简化网络构建过程,最后还介绍了如何使用 save、load 方法保存和加载模型,以节省模型训练时间。

盼小辉丶的博客 8万+

Qt动画效果-【初学一】

滑动效果的初学,后面更新

qq_42964109的博客 2284

【IoT】压力式电子脉搏器设计

智能硬件

产品线负责人 1620

qt动画实现抖动和下坠

直接看代码 .h #ifndef WIDGET_H #define WIDGET_H #include <QWidget> #include <QPropertyAnimation> class Widget : public QWidget { Q_OBJECT public: Widget(QWidget *parent = nullptr); ~Widget(); public slots: void onDownClikced();

家俊的博客 497

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Qt之QParallelAnimationGroup

简述 QParallelAnimationGroup类提供动画的并行组。 QParallelAnimationGroup - 一个动画容器,当它启动的时候它里面的所有动画也启动,即:并行运行所有动画,当持续时间最长的动画完成时动画组也随之完成。 简述 详细描述 示例 效果 源码 更多参考 详细描述 Q...

weixin_34376986的博客 585

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

上一篇: Qt之QSS(样式表语法)
下一篇: qt-vs 常量中有换行符
shankusu2017
博客等级 码龄15年 155粉丝 155原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值