QT实现提示右下角冒泡效果

本文实例为大家分享了QT实现提示右下角冒泡的具体代码,供大家参考,具体内容如下

实现原理:

1、显示

定时器启动,右下角缓慢弹出,逐渐改变位置。

2、驻留

让界面停留一定的时间,时间过后自动关闭。

3、退出

可以直接点击关闭退出,也可以采用改变透明度的形式模糊退出。

#ifndef _QTOOLTIPS_
#define _QTOOLTIPS_
#include <QTimer>
#include <QDialog>
#include "ui_QToolTips.h"

class QToolTips:public QDialog
{
 Q_OBJECT

public:
 QToolTips(QWidget *parent = 0);
 ~QToolTips();

 void showMessage(const char* str);

private slots:
 void onMove();
 void onStay();-
 void onClose();

private:
 Ui::QToolTips ui;
 QTimer * m_pShowTimer;
 QTimer * m_pStayTimer;
 QTimer * m_pCloseTimer;
 QPoint m_point;
 int   m_nDesktopHeight;
 double  m_dTransparent;

};

#endif
#include "QToolTips.h"
#include <QtWidgets/QApplication>
#include <QDesktopWidget>

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 = new QTimer(this);
 m_pStayTimer = new QTimer(this);
 m_pCloseTimer = new QTimer(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()
{

}

void QToolTips::showMessage(const char* str)
{
 ui.m_label->setStyleSheet("background-color:rgb(255,210,200);font:60px;color:blue");
 ui.m_label->setText(str);
 QRect rect = 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);

}

void QToolTips::onMove()
{
 m_nDesktopHeight--;
 move(m_point.x(), m_nDesktopHeight);
 if (m_nDesktopHeight <= m_point.y())
 {
 m_pShowTimer->stop();
 m_pStayTimer->start(5000);
 }

}

void QToolTips::onStay()
{
 m_pStayTimer->stop();
 m_pCloseTimer->start(100);

}

void QToolTips::onClose()
{
 m_dTransparent -= 0.1;
 if (m_dTransparent <= 0.0)
 {
 m_pCloseTimer->stop();
 close();
 }
 else
 {
 setWindowOpacity(m_dTransparent);
 }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Qt实现屏幕底部冒泡效果

    在Qt局域网聊天程序的到的东西太多了,最想和大家分享的是关于局域网聊天信息的冒泡,他的设计也不是特别难,我写了一个类分享给大家. 可能各位道友有更好的办法,但希望不要拆台哦. 该类中有一部分适应屏幕分辨率的类,也一并加入.如有不懂的欢迎大家留言. 首先是获取屏幕分辨率,并实现自适应屏幕分辨率. #ifndef VERDESKTOP_H #define VERDESKTOP_H #include <QObject> #include <QDesktopWidget> class Ve

  • QT实现提示右下角冒泡效果

    本文实例为大家分享了QT实现提示右下角冒泡的具体代码,供大家参考,具体内容如下 实现原理: 1.显示 定时器启动,右下角缓慢弹出,逐渐改变位置. 2.驻留 让界面停留一定的时间,时间过后自动关闭. 3.退出 可以直接点击关闭退出,也可以采用改变透明度的形式模糊退出. #ifndef _QTOOLTIPS_ #define _QTOOLTIPS_ #include <QTimer> #include <QDialog> #include "ui_QToolTips.h&qu

  • js实现类似MSN提示的页面效果代码分享

    这是一篇基于javascript实现了模仿MSN消息提示的效果,推荐给大家,感兴趣的小伙伴们可以参考一下. 运行效果图:----------------------查看效果----------------------- 小提示:浏览器中如果不能正常运行,可以尝试切换浏览模式. 为大家分享的模仿MSN消息提示的效果代码如下 <html> <head> <meta http-equiv="Content-Type" content="text/htm

  • Qt编写提示进度条的实现示例

    目录 一.前言 二.实现的功能 三.效果图 四.头文件代码 五.核心代码 六.控件介绍 一.前言 我们在很多的安装包中,在安装过程中,经常可以在底部看到一个漂亮的进度条,上面悬浮着显示对应的进度,然后底部进度多种颜色渐变展示,Qt自带的进度条或者操作系统的进度条样式,不够炫,这次索性直接来个自定义绘制实现,至于是继承QWidget类还是QProgressBar类,都无所谓,如果是继承自QWidget类的话,就需要自己设置最大值最小值范围值,而继承自QProgressBar的话就可以直接用自带的函

  • jquery 关键字“拖曳搜索”之“拖曳”以及 图片“提示自适应放大”效果 的实现

    关键字"拖曳搜索"之"拖曳"功能需要 jQuery UI 之 droppable 库 效果如下: 搜索包含相关关键字时,把拖曳左边关键字到右边框里面 也可以在输入框里输入自定义关键字到下面框 即可搜索 如果去掉不需要的关键词 搜索时 把不需要的关键词从右边框拖曳回到左边 即可 无论原来还是自定义加入的关键词 如果已存在 她会提示... 实现: 复制代码 代码如下: <script type="text/javascript" src=&qu

  • js 右下角弹窗效果代码(IE only)

    右下角弹窗效果练习 function $(obj){ return document.getElementById(obj); } function pop(obj){ var h = parseInt($("popDiv").currentStyle.height); $("popDiv").style.height = (h + obj) + "px"; if(parseInt($("popDiv").style.heig

  • javascript实现右下角广告框效果

    本文教大家用原生js实现的简单网页主页右下角的广告框效果,利用好绝对定位,点击X关闭广告,里面的内容不管动图或者视频都可以. 代码最简洁,js行为优化版,复制粘贴即可使用. 演示部分 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>右下角广告框效果</title> </head> <st

  • jQuery实现鼠标移到元素上动态提示消息框效果

    当光标移动到某些元素上时,会弹出像tips的提示框. 复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>jQuery动态提示消息框效果</title><base target="_blank&qu

  • JS实现的邮箱提示补全效果示例

    本文实例讲述了JS实现的邮箱提示补全效果.分享给大家供大家参考,具体如下: 现在要实现的是类似网易登录时的邮箱提示框的效果,不过这里我打算稍微改变一下,就是在输入@的时候再出现邮箱提示列表 实现提示的原理是采用正则进行匹配 效果图如下: 代码如下: <!doctype html> <html> <head> <meta charset="utf-8" /> <title>邮箱补全提示</title> <sty

  • vue.js+ElementUI实现进度条提示密码强度效果

    要求一:判断输入的字符串是否包含数字.小写字母.大写字母以及特殊字符四种内容的8-20位字符 通过搜索了解到可以使用?=这个正则语法判断字符串中是否含有多种内容.(?=)这个语法结构在正则里表示"设定后面是"的意思,举下面几个例子进一步了解?=这个语法: (?=.*[a-zA-Z])  这句的意思就是后面必须有一位大写或小写字母 (?=.*[1-9]) 这句的意思是后面必须有一位数字 (?=.*[\W]) 这句的意思是后面必须有一个非字母数字及下划线的特殊符号 (?!.*[\u4E00

  • Qt 实现钢笔画线效果示例及详细原理

    前言 上一篇文章:Qt 实现画线笔锋效果详细原理,根据这篇介绍的实现笔锋效果的原理,我们很容易实现另外一种笔效:钢笔. 所谓的钢笔笔效,就是真实还原钢笔书写出来的线条效果,其特征就是:根据笔的绘制速度而线条的宽度会逐渐变化,写得越快,线条越细,并且在收笔时带有笔锋效果. 那么,在上一篇文章的基础上,稍微修改一下,就可以实现这个效果,看下效果图: 实现原理 从上一篇文章我们知道,绘制的曲线是通过每两个点形成一条贝塞尔曲线,所以在不松手的情况下连续画线,整条线段是包含很多条path组合而成的.而要实

随机推荐