QT窗口渐现效果,窗口震动效果,鼠标移动窗口

//窗口渐现效果void MainWindow::closeWindowAnimation() //关闭窗口效果
{
    QPropertyAnimation *animation = new QPropertyAnimation(this,"windowOpacity");
    animation->setDuration(500);
    animation->setStartValue(1);
    animation->setEndValue(0);
    animation->start();
    connect(animation,QPropertyAnimation::finished,this,close);

}
void MainWindow::startAnimation()
{
    QPropertyAnimation *animation = new QPropertyAnimation(this,"windowOpacity");
    animation->setDuration(500);
    animation->setStartValue(0);
    animation->setEndValue(1);
    animation->start();
}
//窗口震动效果void MainWindow::shakeWindow()
{
    QPropertyAnimation *animation = new QPropertyAnimation(this,"geometry");
    animation->setDuration(500);
    animation->setKeyValueAt(0,QRect(QPoint(this->frameGeometry().x()-3,this->frameGeometry().y()),this->size()));
    animation->setKeyValueAt(0.1,QRect(QPoint(this->frameGeometry().x()+6,this->frameGeometry().y()),this->size()));
    animation->setKeyValueAt(0.2,QRect(QPoint(this->frameGeometry().x()-6,this->frameGeometry().y()),this->size()));
    animation->setKeyValueAt(0.3,QRect(QPoint(this->frameGeometry().x()+6,this->frameGeometry().y()),this->size()));
    animation->setKeyValueAt(0.4,QRect(QPoint(this->frameGeometry().x()-6,this->frameGeometry().y()),this->size()));
    animation->setKeyValueAt(0.5,QRect(QPoint(this->frameGeometry().x()+6,this->frameGeometry().y()),this->size()));
    animation->setKeyValueAt(0.6,QRect(QPoint(this->frameGeometry().x()-6,this->frameGeometry().y()),this->size()));
    animation->setKeyValueAt(0.7,QRect(QPoint(this->frameGeometry().x()+6,this->frameGeometry().y()),this->size()));
    animation->setKeyValueAt(0.8,QRect(QPoint(this->frameGeometry().x()-6,this->frameGeometry().y()),this->size()));
    animation->setKeyValueAt(0.9,QRect(QPoint(this->frameGeometry().x()+6,this->frameGeometry().y()),this->size()));
    animation->setKeyValueAt(1,QRect(QPoint(this->frameGeometry().x()-3,this->frameGeometry().y()),this->size()));
    animation->start();
}
//鼠标移动窗口效果void MainWindow::mousePressEvent(QMouseEvent *event)
{
    if ( event->button() == Qt::LeftButton )
        {
            startPos = event->globalPos() - this->frameGeometry().topLeft();
            qDebug()<<event->globalPos()<<this->frameGeometry().topLeft()<<startPos;
        }
        else if ( event->button() == Qt::MiddleButton)
            closeWindowAnimation();
        else if(  event->button() == Qt::RightButton )
            shakeWindow();
}

void MainWindow::mouseMoveEvent(QMouseEvent *event)
{
    if ( event->buttons() == Qt::LeftButton &&startPos.y()<40)
        {
            endPos = event->globalPos() - startPos;
            qDebug()<<endPos;
            this->move(endPos);

    }
    //qDebug()<<event->pos().x();
}
时间: 2024-08-26 03:12:41

QT窗口渐现效果,窗口震动效果,鼠标移动窗口的相关文章

jQuery实现的Div窗口震动效果实例

本文实例讲述了jQuery实现的Div窗口震动效果.分享给大家供大家参考.具体如下: 这是一款jQuery窗口震动效果代码,在Div边框内点击一下鼠标,它就开始震动了,适用浏览器:IE8.360.FireFox.Chrome.Opera.傲游.搜狗.世界之窗等. 运行效果截图如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml

UGUI 实现界面 渐隐渐现 FadeIn/Out 效果

孙广东  2015.7.10 其实熟悉NGUI的人,应该知道  实现渐隐渐现 FadeIn/Out 效果是很方便的,因为父对象 的 改变会自动影响到子对象. 比如 UIWidget.UIPanel等组件都有 Alpha属性,在Inspector面板上可以直接设置拖拽的改变看看.  确实如此. 但是到UGUI呢,没有这么方便.  需要熟悉一下 组件的内部和继承关系了! UI中每个能够显示控件都会有一个CanvasRender对象,CanvasRender有什么作用呢? 官方的解释:The Canv

BootStrap入门教程 (四) :JQuery类库插件(模态窗口,滚动监控,标签效果,提示效果,“泡芙”效果,警告区域,折叠效果,旋转木马,输入提示)

上讲回顾:Bootstrap组件丰富同时具有良好可扩展性,能够很好地应用在生产环境.这些组件包括按钮(Button),导航(Navigation),缩略图( thumbnails),提醒(Alert),进度条(progress bar)等,能够很好减少前端工程师的代码量,实现更加丰富充实的页面. Bootstrap作为一套良好的前端工具,要实现现代的动态页面效果,javascript插件是必不可少的.它提供了12个基于JQuery类库的插件,包括模态窗口(Modals),滚动监控(Scrolls

前端模拟手机屏幕图片渐隐渐现效果实现

在网站上,我们经常会看到这样的效果,有一个IphoneX的手机屏幕,然后屏幕上会像真的一样,会出现各种动画效果,譬如图片的渐隐渐现.今天我们就尝试做一个这样的效果. HTML页面结构大概是这样子的: <main class="mobileBox"> <div class="imgBox"> <img src="./images/bg1.jpg" class="imgItem" srcset=&qu

ObjectAnimator之PropertyValuesHolder与Keyframe----实现电话响铃震动和小球自由抛体效果

首先需要实现的俩种效果图 1.实现电话响铃震动效果 2.小球自由抛体效果 一.PropertyValuesHolder 1.概述 PropertyValuesHolder这个类的意义就是,它其中保存了动画过程中所需要操作的属性和对应的值.我们通过ofFloat(Object target, String propertyName, float- values)构造的动画,ofFloat()的内部实现其实就是将传进来的参数封装成PropertyValuesHolder实例来保存动画状态.在封装成P

在Unity5中使用C#脚本实现UI的下滑、变色、渐隐渐现效果

一.首先,我们先创建一个Text    依次选择Component→UI→Text创建一个Text,创建完成后如下: 二.创建完成后,在Project面板点击Create→C# Script,本例命名为InAndFade 三.编写代码之前,为了确保能够调用到Text类,所以要先手动引入命名空间 using UnityEngine.UI; 四.完整代码如下 1 public class InAndFade : MonoBehaviour 2 { 3 //渐隐渐现 4 public bool Sho

Qt 使用QMovie加载gif图片实现动态等待窗口

有时候要进行某项后台处理,但后台处理时间很长,需要提示用户等待,不妨做一个动态等待窗口.具体实现过程如下: 1 自定义窗口类DlgWait (1) 在资源中添加动态的gif图片,记住它的大小. 我添加的是一个“loading.gif”图片,大小是100x100,如下: (2)添加一个窗口界面类DlgWait 窗口大小比gif稍大即可,如150x150 在界面上添加2个QLabel: 第一个用来显示gif,名为lbl_gif,text为空,大小为100x100 第二个在下,用来显示提示信息,名为l

基于Qt的类似QQ好友列表抽屉效果的实现

前段时间在忙毕业设计,所以一直没有更新博客.今天答辩完以后,将对我的毕业设计进行模块展示,供Qt初学者进行参考. 毕业设计题目:Linux系统下基于Qt的局域网即时通信系统设计与实现 其中我有一个类似于QQ的好友列表,然后对好友可以进行分组管理,毕设中具体效果图如下: 网上查寻到的设计思路: 1.采用QToolBox的方式,虽然看起来有点样子,但是并不是我们所熟悉的好友列表,比如:http://blog.csdn.net/qianguozheng/article/details/6719074

Unity3D游戏开发之屏幕震动效果的实现

各位朋友,大家好,欢迎大家关注我的博客,我是秦元培,我的博客地址是http://qinyuanpei.com.今天我们来说说在Unity3D中如何实现屏幕震动效果.屏幕震动效果在某些游戏场景中,对于提升游戏的真实感有较大的帮助.比如在<水果忍者>这个游戏中,当玩家碰到炸弹的时候屏幕会出现强烈的震动效果,同时手机自身发出震动,这样就大大地增强了玩家在碰到炸弹这一瞬间的游戏体验. 再比如<Swordigo>这个游戏是博主一直比较喜欢的一款手机游戏,在这个游戏中玩家将扮演一个少年剑客,跨