QT之系统托盘

QT之系统托盘

  • QT之系统托盘
    • 插叙
    • 应用背景
    • 应用效果图
    • 上代码
    • 自定义菜单效果图
    • 下代码
    • 结尾

插叙

今天天气不错哈,在这么寒冷的天气,享受着这么温暖的阳光。很舒服!你懂的~~趁这个大好时光,我给大伙再来一发续篇,经过上一节QT之独立标题栏大伙不仅有了漂亮的标题栏之后,是不是还实现了最小化和关闭功能啊?你是不是在想我们点击关闭按钮后,能不能像QQ样,不想退出,而是最小化到系统托盘里呀,好的,今天我给大家来实现系统托盘的功能,让你也享受一把!(^__^)

应用背景

我们关闭界面后,不希望直接退出,而是最小化到系统托盘。点击托盘图标后,又可以查看我们的主界面。

应用效果图

QT之系统托盘_第1张图片

是不是感觉棒棒哒!(^__^) !!!,系统托盘图标可不是我的QQ哦,那是我Demo里的图标,只是用的QQ图标而已。好了,又是关键时刻了,大伙最想看到的不仅仅是效果,更想看代码吧!放心,代码是有的哈!好了,我们代码之旅开始吧。

上代码

//首先我们需要这句话,它作用就是我退出时,并不希望真正的退出。
QApplication::setQuitOnLastWindowClosed(false);

QT之系统托盘_第2张图片

这里是QT官网文档介绍

#define TRAY_ICON   ":/Demo/Resources/logo_/All_logo32.ico"
#define CLOSE_MENU  ":/Demo/Resources/fatalerror.png"

SysTray::SysTray(QWidget *parent)
        : m_parent(parent)
        , QSystemTrayIcon(parent)
{
    initSysTemTray();
    show();
}

SysTray::~SysTray()
{

}

void SysTray::initSysTemTray()
{
    setToolTip(tr("titleName"));
    setIcon(QIcon(TRAY_ICON));
    connect(this, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(onIconActivated(QSystemTrayIcon::ActivationReason)));
}

void SysTray::onIconActivated(QSystemTrayIcon::ActivationReason reason)
{
    if (reason == QSystemTrayIcon::Trigger)
    {
        m_parent->show();
        m_parent->activateWindow();
    }
}

是不是并没有你想象的那么难,这一切还是感谢QT吧,因为很多东西QT都已经帮我们封装得很好,为我们提供了各种接口,没有你找不到的接口,只有你想不到的,哈哈~有些夸张哈。好了,我再给大家展示一张效果图,等我再享受一会阳光,我紧接着给大家揭晓答案哈。下篇QT之自定义菜单

自定义菜单效果图

QT之系统托盘_第3张图片

大家注意看哦,我点击关闭的时候,就真正的退出,和上面说的没有真正的退出,大家理解下哈。

下代码

关于源码,大家放心,我会再这期把整个Demo讲解完,整个附上。只需持续关注我·嘿嘿~O(∩_∩)O

结尾

只为记录,只为分享! 愿所写能对你有所帮助。Good Good Study, Day Day Up!
如果你觉得我所写的对你有帮助,默默点个赞哈,你的赞就是我最大的支持,嘿嘿~不要说我骗赞哦,(^__^)

你可能感兴趣的:(Qt之路,Qt技术分享,qt)