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")); 来实现
Qt5:QSystemTrayIcon类实现程序托盘图标的更多相关文章
- 使用System.Timers.Timer类实现程序定时执行
使用System.Timers.Timer类实现程序定时执行 在C#里关于定时器类有3个:System.Windows.Forms.Timer类.System.Threading.Timer类和Sys ...
- 用Stopwatch类获得程序运行时间
我们可以用Stopwatch类获得程序的运行时间,在优化代码时,可以用此方法来查看优化前后程序所耗费的时间 //Stopwatch类別在System.Diagnostics命名空间里 Stopwatc ...
- win32进阶之路:程序托盘图标+右键弹出菜单
开场白 本次介绍两个非常棒且实用的技巧:程序托盘图标和右键弹出菜单,效果如下图. 程序托盘图标用了迅雷的图标,右键点击时候会弹出三个选项的菜单. 程序托盘图标设置 我会用尽可能清晰明了的步骤介绍方式 ...
- [C#] 常用工具类——应用程序属性信息访问类
using System; using System.Collections.Generic; using System.Text; using System.Reflection; namespac ...
- 对类HelloWorld程序中添加一个MessageBox弹窗
对类HelloWorld程序中添加一个MessageBox弹窗 分析: 任一程序运行的时候都会加载kernel32.dll的,但MessageBoxA()这个API却是在user32.dll中的.所以 ...
- java--final 类在程序中的影响
很多时候我都记不住也弄不太清楚final类在程序的中的作用到底为何,今天正好看到了,就把它记下来,省的以后忘了的时候到处找资料~ final修饰符对程序的影响总的来说有三点: (1)final可以修饰 ...
- qt5.5实现 记事本程序
最近由于要做Qt相关的毕业设计课题,以前对Qt完全不了解,对于客户端图形界面程序,也只对Windows下的MFC熟悉, 所以,由于Qt的跨平台特性和相对比较纯的C++的特点,就准备学习一下吧.这两天逛 ...
- vs调试程序时发现变量、类等程序找不到混乱问题
vs中不能同时打开两个解决方案名称相同的程序,否则会运行时出现混乱,比如变量监测不到,类的属性不全等问题
- Application类-应用程序生命周期
1.创建Application对象 新建WPF程序后,排除掉WPF自动创建的App.xaml,我们自定义一个类,在该类的Main()方法中,创建Application对象,然后调用创建一个窗口对象,最 ...
随机推荐
- 面向对象的特性-利用prototype为类创建静态成员
—————————————————————————— <script type="text/javascript"> //用function模拟一 ...
- Struts2原理图
- allocator 类
allcator是一个模板类 定义在memory头文件中,将内存分配与对象构造分开,分配的内存是原始的.未构造的 一.how to use 因其实一个类,则使用allcator时需要首先声明一个类对象 ...
- malloc without free, what happens?
It's per-process. Once your process exits, the allocated memory is returned to the OS for use by oth ...
- centos中jdk配置
为了搭建jenkins环境,我这里必须先要配置jdk,我的系统环境时centos6.5,首先申明的是我系统是新系统,没有安装过jdk 我这里准备的安装包是jdk-7u80-linux-x64.gz. ...
- Inno Setup入门(二十二)——Inno Setup类参考(8)
: Install Setup 2013-02-02 11:31 477人阅读 评论(0) 收藏 举报 列表框 列表框(ListBox)是Windows应用程序中重要的输入手段,其中包括多个选项用户可 ...
- JSON中的特殊字符
使用JSON从后台向前台传输数据的时候,当数据本身含有一些特殊字符,会导致JSON数据的解析出错.这个时候,就需要将JSON中的特殊字符过滤掉. 用下面的方法对即将向前台输出的json字符串进行处理, ...
- OpenGL ES着色器语言之变量和数据类型(一)(官方文档第四章)和varying,uniform,attribute修饰范围
OpenGL ES着色器语言之变量和数据类型(一)(官方文档第四章) 所有变量和函数在使用前必须声明.变量和函数名是标识符. 没有默认类型,所有变量和函数声明必须包含一个声明类型以及可选的修饰符. ...
- JPA 系列教程9-双向一对一唯一外键
双向一对一唯一外键的ddl语句 CREATE TABLE `t_person` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(25 ...
- gvim work notes.. a few days' work on 64bit vim and plugin compilations
(a 600MB+ sized c/c++ compiler which is capable of hi-light and JB styled completion!! and of-course ...