zoukankan      html  css  js  c++  java
  • Qt5:QSystemTrayIcon类实现程序托盘图标

    windows下,在许多应用程序中都会实现一个托盘图标,用于隐藏应用程序窗口时还能对该应用程序进行简单的操作,例如 QQ ,renren等程序

    那么,在Qt中,如何实现呢? 这就要用到Qt提供的 QSystemTrayIcon  这个类了。

    来看看这个类中都有哪些常用的成员函数

    首先是这个类的构造函数

      QSystemTrayIcon(QObject * parent = 0)
      QSystemTrayIcon(const QIcon & icon, QObject * parent = 0)

    可以看出,使用这个类需要一个托盘图标 , 和托盘图标标识的窗口对象的指针

    再来是一个设置右键菜单的函数
      void setContextMenu(QMenu * menu)

      在使用带有托盘的应用程序的时候,在操作托盘图标的时候, 点击或右击托盘图标的时候,一般会弹出一个菜单用于操作这个应用程序,在qt中,菜单就是通过

      该函数设置的。

    还有以下的一些函数,功能都可以从这些函数的命名上看出来

      void setIcon(const QIcon & icon) //设置托盘的图标
      void setToolTip(const QString & tip)//设置托盘图标的提示信息

      void show() //该函数适用于显示托盘图标的函数

      。。。。

    特别要谈一下这个函数
      void showMessage(const QString & title, const QString & message,...)
    这个函数是用于实现弹出气泡通知窗口的函数,调用这个函数系统右下角就会弹出一个 气泡提示窗口,提示某些信息

    下面就来实现一个简单的带托盘程序

    主要的托盘设置代码如下

      QSystemTrayIcon  *pannelIcon = new QSystemTrayIcon(this);

      pannelIcon->setIcon(QIcon("pannelicon.ico"));

      pannelIcon->show();

    将这段代码放到窗口程序的构造函数中

    编译连接,一个简单的带托盘程序就完成了

    另外的tooltips , menu 等都可以通过简单调用该类提供的函数来实现

    关于类似QQ的闪烁托盘图标的实现, 可以通过加个定时器来完成.利用超时信号 timeout(), 

    轮流调用 setIcon(QIcon("")); 和  setIcon(QIcon("xxx.ico")); 来实现

  • 相关阅读:
    Linux服务器使用SSH的命令
    linux c 查看其它程序是否启动。没有则启动他
    libnfc安装在ubuntu
    Linux让应用只在特定桌面环境下自动启动
    Linux服务器守护进程+自动启动+服务配置笔记
    ps 指令詳解
    http://blog.sina.com.cn/s/blog_57421ff80100c7nn.html
    Can't start MySQL5.5 on Ubuntu 12.04 “dpkg: dependency problems”
    chsh命令用于修改你的登录shell
    linux ssh客户端密钥转发
  • 原文地址:https://www.cnblogs.com/wowk/p/3162271.html
Copyright © 2011-2022 走看看