码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2015-07-03 13:57:10      阅读:307      评论:0      收藏:0      [点我收藏+]

标签:

//窗口渐现效果
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(); }

 

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

标签:

原文地址:http://www.cnblogs.com/Zengineer/p/4618294.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!