托盘是什么?这个就不用在多说了!而Qt中如何实现自己的托盘功能,Qt自带的demo也很明了,这里我们就来实现自己的一个托盘。。。

void TrayMenu::createActions()
  {
     //创建托盘项
     action_show = new QAction(this);
     action_quit = new QAction(this);
     action_login_home = new QAction(this);
     action_help = new QAction(this);
     action_about = new QAction(this);
     action_check_update = new QAction(this);
     action_setting = new QAction(this);

//设置托盘项图标

action_show->setIcon(QIcon(":/icon/open"));
     action_login_home->setIcon(QIcon(":/icon/home"));
     action_help->setIcon(QIcon(":/icon/help"));
     action_about->setIcon(QIcon(":/icon/about"));
     action_check_update->setIcon(QIcon(":/icon/update"));
     action_setting->setIcon(QIcon(":/icon/set"));
     action_quit->setIcon(QIcon(":/icon/quit"));

//设置托盘想文本

action_show->setText(QString("显示"));
     action_quit->setText(QString("退出"));
     action_login_home->setText(QString("登录网页"));

action_help->setText(QString("帮助"));
     action_about->setText(QString("关于"));

action_check_update->setText(QString("检查更新"));

action_setting->setText(QString("设置"));

//添加菜单项
     this->addAction(action_show);
     this->addAction(action_setting);
     this->addAction(action_login_home);
     this->addSeparator();
     this->addAction(action_help);
     this->addAction(action_about);
     this->addAction(action_check_update);
     this->addSeparator();
     this->addAction(action_quit);

action_setting->setVisible(false);

//设置信号连接(这里仅列举连接显示窗口的信号)
     QObject::connect(action_show, SIGNAL(triggered(bool)), this, SIGNAL(showWidget()));
 }

LoginDialog::LoginDialog(QWidget *parent) : QDialog(parent)
  {

QSystemTrayIcon *system_tray = new QSystemTrayIcon();

//放在托盘提示信息、托盘图标

system_tray ->setToolTip(QString("我就是托盘"));
     system_tray ->setIcon(QIcon(":/icon/login"));

TrayMenu *tray_menu = new TrayMenu();
     system_tray->setContextMenu(tray_menu);

//点击托盘执行的事件
      connect(system_tray , SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(iconIsActived(QSystemTrayIcon::ActivationReason)));
     connect(tray_menu, SIGNAL(showWidget()), this, SLOT(showNormal()));

//显示托盘
     system_tray->show();

//托盘显示提示信息

system_tray->showMessage(QString("托盘标题"), QString("托盘显示内容"));

}

void LoginDialog::iconIsActived(QSystemTrayIcon::ActivationReason reason)
  {
     switch(reason)
     {
     //点击托盘显示窗口
     case QSystemTrayIcon::Trigger:
      {
        showNormal();
        break;
      }   
     //双击托盘显示窗口
     case QSystemTrayIcon::DoubleClick:
     {
       showNormal();
       break; 
     }            
     default:
      break;
     }
  }

OK,这样我们的托盘功能就Over了!

Qt之系统托盘(QSystemTrayIcon详解)相关推荐

  1. QT QTabWidget 控件 使用详解

    本文详细的介绍了QTabWidget控件的各种操作,例如:新建界面.设置页面名字.设置提示信息.设置页面激活.设置标题栏位置.设置页面关闭按钮.设置页面关闭按钮.获取页面下标.获取页面总数.清空所有页 ...

  2. Qt之布局设置setLayout详解-源码剖析(下)

    一.简述 大家好,我是前行中的小猪,今天呢给大家继续上一篇Qt之布局设置setLayout详解(上)之后的内容,再给大家进行一下拓展. 1.1 setLayout源码剖析 上篇我们说到如何清空部件上的 ...

  3. Qt 实现系统托盘,托盘菜单,托盘消息

    欢迎关注公众号可以查看更多完整文章 Qt 实现系统托盘,托盘菜单,托盘消息 系统托盘就是运行的某个程序在电脑右下角的小图标,相信大家都很熟悉.QT 提供了QSystemTrayIcon类用于实现程序的 ...

  4. Linux系统守护进程详解

    文中有不对或者有不清楚的地方,请大家告诉我,谢谢!   Linux系统守护进程详解 不要关闭下面这几个服务: acpid, haldaemon, messagebus, klogd, network, ...

  5. 支付系统整体架构详解

    2019独角兽企业重金招聘Python工程师标准>>> 支付系统整体架构详解 http://www.dataguru.cn/article-11263-1.html http://w ...

  6. IBM p5服务器上的虚拟 分享,IBMp5服务器系统虚拟技术详解

    <IBMp5服务器系统虚拟技术详解>由会员分享,可在线阅读,更多相关<IBMp5服务器系统虚拟技术详解(10页珍藏版)>请在人人文库网上搜索. 1.IBM p5 服务器系统虚拟 ...

  7. 分布式表格系统Google Bigtable详解

    分布式表格系统Google Bigtable详解 概述 Bigtable架构 数据分布 保证 副本位置与负载均衡 存储 表的分裂与合并 存储引擎 垃圾回收 总结 概述 bigtable系统由表格组成, ...

  8. 升级鸿蒙系统如何退出,华为鸿蒙2.0系统升级了怎么退回EMUI11系统-操作教程详解...

    华为鸿蒙2.0系统升级了怎么退回EMUI11系统?很多用户升级了又不知道如何才能退回到原来的系统,下面就让老铁下载小编为大家带来,2.0系统升级退回EMUI11系统操作教程详解. 这次开启华为鸿蒙2. ...

  9. 必过SafetyNet!以MIUI开发版系统为例详解Android设备通过SafetyNet校验方法

    必过SafetyNet!以MIUI开发版系统为例详解Android设备通过SafetyNet校验方法 作者 梓沐啊_(KylinDemons) 版权声明 Copyright © 2021 KylinD ...

  10. Qt QLineEdit单行输入框用法详解

    Qt QLineEdit单行输入框用法详解 QLineEdit 是 Qt 提供的一个控件类,它直接继承自 QWdiget 类,专门用来创建单行输入框,如下图所示: 图 1 单行文本输入框 实际开发中, ...

最新文章

  1. 对话IT:火狐4.0正式版发布 庆功会上听宫博士“酒后真言”
  2. 【深度学习入门到精通系列】进化策略 (Evolution Strategy)
  3. Tensorflow-gpu安装
  4. oracle nvachar 长度,Oracle中varchar、varchar2和nvarchar、nvarchar2
  5. VSCode打造成为开发神器-插件篇
  6. 入坑emacs之配置文件 .emas.d/init.el -v1.0
  7. 花小猪,真正的对手是谁?
  8. Mac中word插入图片保持原来的清晰度
  9. SVN使用log,list,cat,diff命令查看特定文件版本信息
  10. java内存:堆、栈、常量池、方法区
  11. java 观察者模式示例_Java中的观察者设计模式-示例教程
  12. [蓝桥杯][2019年第十届真题c/c++B组]迷宫(寻找路径bfs及文件输入输出)
  13. PSD分层可临摹模板|无线端电商页面UI设计几个常见的错误
  14. 风控中的企业与个人数据有哪些核验维度
  15. java math 三角函数_Java中的三角函数
  16. Prolog编程学习(一)
  17. Wechall Challenges Writeup 知识拓展
  18. 海康威视web管理端下载视频录像
  19. 因补助低!名校博士生开展大规模学术罢工行动!多校濒临崩溃
  20. 无线局域网简介 小白级别

热门文章

  1. Java 编写推箱子报告_Java推箱子怎么写啊?
  2. 人群频率 | gnomAD数据库 (二) 后台数据的获取及质量评估
  3. 方差分析中的“元”和“因素”是什么?
  4. Caret模型训练和调参更多参数解读(2)
  5. 废弃P-value,还是学学如何评估统计检验结果?
  6. NOI数学:狄利克雷(Dirichlet)卷积
  7. 程序员的失业危机原因及应对方法汇总
  8. centos7远程桌面端口_CentOS7启用远程桌面连接
  9. Java笔记-Semaphore简单应用实例
  10. Java笔记-基于Spring Boot的SOAP双向SSL认证及WS-Security