linux系统如何用qt实现托盘,【linux】【qt5界面】【系统托盘图标的实现】

news/2024/7/23 13:58:26

前言:

博主最近在做一个聊天软件,虽然技术不咋滴,但遇到点干货肯定是要跟大家分享的啦。下面就给大家分享一个qt实现程序隐藏才系统托盘的技巧。

装备:

系统:linux,

qt版本:5.9.2,GCC:4.9.3.

1.头文件声明:

QSystemTrayIcon *mSysTrayIcon;  //记得头文件

void on_activatedSysTrayIcon(QSystemTrayIcon::ActivationReason reason);//槽函数的声明

2.窗口初始化时创建托盘对象:

//新建QSystemTrayIcon对象

mSysTrayIcon = new QSystemTrayIcon(this);

//新建托盘要显示的icon

QIcon icon = QIcon(":/new/images/im_icon.png");

//将icon设到QSystemTrayIcon对象中

mSysTrayIcon->setIcon(icon);

//当鼠标移动到托盘上的图标时,会显示此处设置的内容

mSysTrayIcon->setToolTip(QObject::trUtf8("xxx客户端"));

//给QSystemTrayIcon添加槽函数

connect(mSysTrayIcon,SIGNAL(activated(QSystemTrayIcon::ActivationReason)),this,SLOT(on_activatedSysTrayIcon(QSystemTrayIcon::ActivationReason)));

//在系统托盘显示此对象

mSysTrayIcon->show();

3.槽函数实现点击事件。

//系统托盘功能

void ocswk::on_activatedSysTrayIcon(QSystemTrayIcon::ActivationReason reason)

{

switch(reason){

case QSystemTrayIcon::Trigger:

//单击托盘图标,显示窗体

this->show();

break;

case QSystemTrayIcon::DoubleClick:

//双击托盘图标

//双击后显示主程序窗口

QMessageBox::information(this,"xxx", "xxxxxx");

break;

default://还有个右键事件没写。

break;

}

}

4.体现图标作用:决定是否退出程序或缩小图标

// closeEvents

void ocswk::closeEvent(QCloseEvent *event)

{

QMessageBox button(QMessageBox::Warning, QString(tr("退出程序")),QString(tr("确认退出程序!")));

button.setStandardButtons (QMessageBox::Yes|QMessageBox::No);

button.setSizeIncrement(250,120);

button.setButtonText (QMessageBox::Yes,QString("确定退出"));

button.setButtonText (QMessageBox::No,QString("缩小托盘"));

if(button.exec() != QMessageBox::Yes)

{

this->hide();

event->ignore();

}else{

event->accept();

}

}

5.图标抖动:来消息图标抖动事件还没完成(其实俺也不会啊),等后续更新吧。


http://www.niftyadmin.cn/n/2211630.html

相关文章

linux动态网页要安装,教程方法;linux构建动态WEB服务器安装篇电脑技巧-琪琪词资源网...

琪琪词资源网-教程方法;linux构建动态WEB服务器安装篇电脑技巧,以下是给大家带来的教程方法;linux构建动态WEB服务器安装篇,大家可以了解一下哦!基本配置安装web服务器:httpd-2.X.X先优化吧根据CPU设置变量#export CFLAGS”-O2 -marchpentium4 -pipe” &…

HADOOP的HA搭建

进入到执行&#xff1a;/soft/hadoop-2.7.1/etc/hadoop_cluster$ gedit hdfs-site.xml[配置部分][hdfs-site.xml]1.配置名称服务:dfs.nameservices名称服务的逻辑名。<property><name>dfs.nameservices</name><value>mycluster</value></prop…

对栈和队列的理解

栈的概念是弹压&#xff0c;就像子弹壳装弹&#xff0c;一粒一粒压进去&#xff0c;但是打出来的时候是从上面打出来的&#xff0c;最先压进去的最后弹出来&#xff0c;如果进去顺序是123&#xff0c;打出来顺序是321&#xff0c;这就是后进先出 队列的概念就是我们平时排队&am…

ld-linux.so.2命令,深入理解LINUX下动态库链接器/加载器ld-linux.so.2

【ld-linux-x86-64.so.2】最近在Linux 环境下开发&#xff0c;搞了好几天 Compiler 和 linker&#xff0c;觉得有必要来写一篇关于Linux环境下 ld.so的文章了&#xff0c;google上搜索了很多相关介绍性的文档&#xff0c;发现国内百度上却很少有相关类文档&#xff0c;觉得有必…

linux4.4比较dpdk性能,dpdk中文文档

深入理解javascript原型和闭包(2)——函数和对象的关系上文(理解javascript原型和作用域系列(1)——一切都是对象)已经提到,函数就是对象的一种,因为通过instanceof函数可以判断. var fn function () { }; co ...gitlab这里解决gitlab文件上传大小限制 http://blog.csdn.net/f…

Linux内存管理之页面回收【转】

转自&#xff1a;http://blog.csdn.net/bullbat/article/details/7311205 请求调页机制&#xff0c;只要用户态进程继续执行&#xff0c;他们就能获得页框&#xff0c;然而&#xff0c;请求调页没有办法强制进程释放不再使用的页框。因此&#xff0c;迟早所有空闲内存将被分配给…

读取Spring配置文件的位置

在spring 中 &#xff0c;我们可以从项目的不同的文件位置读取spring 配置文件,相关位置有四种情况&#xff1a; 1> 在 源代码 src或与src 平齐的目录下 2> 在 WEB-INF 目录下&#xff0c;相对于WEB 工程 3> 在 源代码 src或src 的包下 4> 在 任意位置 相关代码如下…

hd集成显卡 linux驱动,将Intel集成显卡GMA HD4000驱动安装到FreeBSD-10.0 Release系统

尝鲜试用FreeBSD10.0 Release&#xff0c;发现安装Intel集成显卡时候跟FreeBSD9.0不同http://www.linuxidc.com/Linux/2014-02/96132.htm &#xff0c;主要就是弹出错误&#xff1a;unknown type name GLDEBUGPROCARB。过程如下&#xff1a;1、通过portsnap升级ports trees&…