times=new QTimer (this);

times->setSingleShot(false);//true 表示循环一次 表示循环无数次

times->setInterval(650);

connect(times,SIGNAL(timeout()),this,SLOT(changeico()));

void MainWindow::timeico()

{

m=0;

times->start();

}

void MainWindow::changeico()//这里我们让其闪烁二十次

{

m++;

if(m==20)

{

times->stop();

}

if(m%2==0)

{

iTrayIcon->setIcon( QIcon(":/images/monter.png") );

}

else

{

iTrayIcon->setIcon( QIcon() );

}

}

void MainWindow::Maction(QSystemTrayIcon::ActivationReason wch)

{

switch(wch)

{

case QSystemTrayIcon::Trigger: times->stop();

iTrayIcon->setIcon( QIcon(":/images/monter.png") );break;//当用户单击时 我们让图标停止闪烁

default:;

}

}

QIcon icon = QIcon(":/images/icon.ico");加载图片

setWindowIcon(icon);把图片设置到窗口上

trayIcon = new QSystemTrayIcon(this);创建一个系统托盘图标

trayIcon->setIcon(icon);//设置图标

trayIcon->setToolTip("a trayicon example");//设置提示语

trayIcon->show();

setMinimumSize(200,100);窗口最大化和最小化一样大小。所以窗口不能放大也不能缩小

setMaximumSize(200,100);

QApplication::setQuitOnLastWindowClosed(false);//Quit On Last Window Closed退出在最后窗口关闭点击关闭时程序不关闭

在 系统托盘图标中,当图标activated(激活)时应该做好相应的处理,它会触发QSystemTrayIcon::ActivationReason 信号,信号可能是单击(触发(Trigger))、双击(DoubleClick)时应该用switch来接收处理,例如:

void class(QSystemTrayIcon::ActivationReason reason){

  switch (reason) {

  case QSystemTrayIcon::Trigger:

    添加自己处理

  break;  

  case QSystemTrayIcon::DoubleClick:

    添加自己处理

    break;  

  case QSystemTrayIcon::MiddleClick:

   添加自己处理

    break; 

  default:        

  }

}

设置系统托盘图标是常用到以下以个:

QIcon(":/images/icon.ico")//加载ico图片或是

QIcon(":/images/heart.svg")//加载svg图片

QSystemTrayIcon->setIcon(QIcon icon);//定义一个系统托盘图标并设置图标

setWindowIcon(icon);//设置窗口图标

QSystemTrayIcon->setToolTip(string);//定义一个系统托盘图标并设置图标的提示语

有时还需要在图标上设置菜单。如下:

void Window::createActions()

{

minimizeAction = new QAction(tr("最小化"), this);

connect(minimizeAction, SIGNAL(triggered()), this, SLOT(hide()));//若是触发了最小化就隐藏窗口

maximizeAction = new QAction(tr("最大化"), this);

connect(maximizeAction, SIGNAL(triggered()), this, SLOT(showMaximized()));//若触发了最大化就最大化窗口

restoreAction = new QAction(tr("还原"), this);

connect(restoreAction, SIGNAL(triggered()), this, SLOT(showNormal()));//若触发了还原就正常显示

quitAction = new QAction(tr("退出"), this);

connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));//若触发了退出就退出程序

}

void Window::createTrayIcon()//创建托盘图标

{

trayIconMenu = new QMenu(this);//菜单

trayIconMenu->addAction(minimizeAction);//把最小化加入到菜单项

trayIconMenu->addAction(maximizeAction);//把最大化加入到菜单项

trayIconMenu->addAction(restoreAction);//把还原加扩到菜单项

//trayIconMenu->addSeparator();//加入一个分离符

trayIconMenu->addAction(quitAction);//把退出加到入菜单项

trayIcon = new QSystemTrayIcon(this);//创建一托盘图标

trayIcon->setContextMenu(trayIconMenu);//设置托盘上下文菜单为trayIconMenu

}

当你不想把你的图标显示出来而程序正常运行,那么就要设置是否可见(setEnabled):

如下:

qidget::setEnabled(bool)

qt类似于qq托盘图标闪烁的消息提示相关推荐

  1. asp.net 页面右下角弹出类似QQ或MSN的消息提示

    <HTML><HEAD> <TITLE>网页特效观止|JsCode.CN|---页面右下角弹出类似QQ或MSN的消息提示</TITLE> <SCR ...

  2. android 锁屏界面弹出qq,Android锁屏状态下弹出activity,如新版qq的锁屏消息提示

    Android锁屏状态下弹出activity,如新版qq的锁屏消息提示 发布时间:2020-06-26 21:27:13 来源:51CTO 阅读:1643 作者:lp5345 在接收消息广播的onRe ...

  3. 仿QQ锁屏界面消息提示

    唤醒屏幕: 1 PowerManager pm = (PowerManager) context 2 .getSystemService(Context.POWER_SERVICE); 3 WakeL ...

  4. 类似于QQ、微信的消息提醒

    1. 所要用到的类: NotificationManager:消息管理器 NotificationChannel:消息通道 Notification:一条消息 2. 使用过程 val manager ...

  5. Qt模仿QQ聊天窗口(四)

    Qt模仿QQ聊天窗口-气泡聊天消息 Qt模仿QQ聊天窗口-气泡聊天消息 简述 效果图 相关博客 代码 结尾 简述 最近感冒了,头疼,头疼,头疼.好了,进入正题吧,基本的气泡消息展示做好了,支持图文混排 ...

  6. Qt QWidget实现消息提示控件TipsWidget

    前言 用Qt实现一个消息提示控件,控件宽度会根据显示的内容多少来动态伸展,控件显示三秒钟过后会自动渐变透明度然后最终消失,这有点类似于Android的Toast控件,都是用于消息短暂提示. 源码 头文 ...

  7. QT 实现类似于qq的登录注册界面

    QT 实现类似于qq的登录界面(仅供参考) 看一下效果图 一:首先创建一个widget项目设计ui界面 使用了LineEdit,QPushButton,QToolButton,QLabel,还有弹簧 ...

  8. qq撤回的信息腾讯服务器有吗,腾讯官方:撤回消息为何提示对方?丨QQ新增自定义撤回消息~...

    原标题:腾讯官方:撤回消息为何提示对方?丨QQ新增自定义撤回消息~ 网友"十大未解之谜"之一---撤回消息为什么还要提示对方?近日,腾讯官方终于给出了一个官方解释. 腾讯表示,在平 ...

  9. 实现MSN,QQ消息提示效果[ASP.Net]

    实现MSN,QQ消息提示效果[ASP.Net] ---------------------------------------------------------------------------- ...

最新文章

  1. 代码审计之代码执行注入
  2. 第 10 章 容器监控 - 078 - Docker 最常用的监控方案
  3. [渝粤教育] 重庆大学 电子商务 参考 资料
  4. Mac上使用Jenv管理多个JDK版本
  5. git 图形化工具 GitKraken 的使用 —— 分支的创建与合并
  6. Software-Defined Networking (SDN) Definition-软件定义网络
  7. 基于JAVA+SpringMVC+MYSQL的进销存ERP系统
  8. 很喜欢的一首歌曲《Take me to your heart》
  9. 探索解析微服务下的RabbitMQ
  10. jdbc mysql 存储过程执行失败_JDBC连接执行MySQL存储过程报权限错误
  11. MEGA-X 3D打印机教程:01_我的第一台3D打印机参数
  12. gopher攻击mysql_机窝安全--安全技术 | 巧用Gopher协议扩展SSRF攻击手法
  13. 小米2s、2sc解激活锁和root
  14. 支付宝20积分兑换15天会员
  15. 机器学习从入门到创业手记-处理数据的乐趣在于挖掘
  16. 孙溟㠭书法篆刻《寿》
  17. 实验:ospf与BFD联动实验(EVE模拟器-Cisco)
  18. 那些年用过的机械键盘#入坑keychron#
  19. MQTT开源库mosquitto安装和使用(一)
  20. 标准二寸免冠证件照片要求:

热门文章

  1. 中国云母行业市场发展动态及销售规模分析报告2022-2028年
  2. IDEAidea导入Scala包
  3. 字符串删除python_Python-去除字符串中不想要的字符
  4. C# 使用微软自带发音
  5. web语义化及其好处
  6. 狂神说Mysql课堂学习笔记,jdbc(含代码,下载链接)
  7. 第九章、python中常用函数及方法------打开函数open,写入write、writelines,读取read、readlines、 readline
  8. 港科资讯 | 香港科大(广州)新生迎“开学第一课”,倪明选校长领衔沉浸式互动演讲...
  9. ES6之用模块封装代码
  10. Python实现猴子选大王