QT实现提示右下角冒泡效果
本文实例为大家分享了QT实现提示右下角冒泡的具体代码,供大家参考,具体内容如下
实现原理:
1、显示
定时器启动,右下角缓慢弹出,逐渐改变位置。
2、驻留
让界面停留一定的时间,时间过后自动关闭。
3、退出
可以直接点击关闭退出,也可以采用改变透明度的形式模糊退出。
#ifndef_QTOOLTIPS_ #define_QTOOLTIPS_ #include#include #include"ui_QToolTips.h" classQToolTips:publicQDialog { Q_OBJECT public: QToolTips(QWidget*parent=0); ~QToolTips(); voidshowMessage(constchar*str); privateslots: voidonMove(); voidonStay();- voidonClose(); private: Ui::QToolTipsui; QTimer*m_pShowTimer; QTimer*m_pStayTimer; QTimer*m_pCloseTimer; QPointm_point; intm_nDesktopHeight; doublem_dTransparent; }; #endif
#include"QToolTips.h" #include#include QToolTips::QToolTips(QWidget*parent/*=0*/) :QDialog(parent) { setWindowFlags(Qt::FramelessWindowHint|Qt::WindowStaysOnTopHint); ui.setupUi(this); m_nDesktopHeight=QApplication::desktop()->height(); m_dTransparent=1.0; m_pShowTimer=newQTimer(this); m_pStayTimer=newQTimer(this); m_pCloseTimer=newQTimer(this); connect(m_pShowTimer,SIGNAL(timeout()),this,SLOT(onMove())); connect(m_pStayTimer,SIGNAL(timeout()),this,SLOT(onStay())); connect(m_pCloseTimer,SIGNAL(timeout()),this,SLOT(onClose())); } QToolTips::~QToolTips() { } voidQToolTips::showMessage(constchar*str) { ui.m_label->setStyleSheet("background-color:rgb(255,210,200);font:60px;color:blue"); ui.m_label->setText(str); QRectrect=QApplication::desktop()->availableGeometry(); m_point.setX(rect.width()-width()); m_point.setY(rect.height()-height()); move(m_point.x(),m_point.y()); m_pShowTimer->start(5); } voidQToolTips::onMove() { m_nDesktopHeight--; move(m_point.x(),m_nDesktopHeight); if(m_nDesktopHeight<=m_point.y()) { m_pShowTimer->stop(); m_pStayTimer->start(5000); } } voidQToolTips::onStay() { m_pStayTimer->stop(); m_pCloseTimer->start(100); } voidQToolTips::onClose() { m_dTransparent-=0.1; if(m_dTransparent<=0.0) { m_pCloseTimer->stop(); close(); } else { setWindowOpacity(m_dTransparent); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。