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

前言:

博主最近在做一个聊天软件,虽然技术不咋滴,但遇到点干货肯定是要跟大家分享的啦。下面就给大家分享一个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.图标抖动:来消息图标抖动事件还没完成(其实俺也不会啊),等后续更新吧。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值