zoukankan      html  css  js  c++  java
  • 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(); }
  • 相关阅读:
    [轉]javascript 的 location 各種用法
    [轉]PHP命名空间规则解析及高级功能
    [轉]虚拟机随谈(一):解释器,树遍历解释器,基于栈与基于寄存器
    [轉]深入理解SQL Server 2005 中的 COLUMNS_UPDATED函数
    [連接]JavaScript中链式调用之研习
    [轉]安装SQL SERVER 2008时,提示:服务SQLBrowser启动请求失败
    AS支除兩邊的空格
    [轉]详解UML六大关系(依赖、类属(继承)、关联、实现、聚合和组合)
    [轉]jQuery UI 关闭父窗口打开的Dialog
    [轉]让PHP支持像jQuery那样的链式操作
  • 原文地址:https://www.cnblogs.com/Zengineer/p/4618294.html
Copyright © 2011-2022 走看看