1 添加两个成员变量
QSystemTrayIcon *trayicon;
QMenu *trayiconMenu;
2 添加一个槽函数用于响应在托盘图标及托盘菜单上的鼠标点击操作
void onSystemTrayIconClicked(QSystemTrayIcon::ActivationReason reason);
3 在构造函数中对添加的两个变量进行初始化
trayicon = new QSystemTrayIcon(this);
//创建QIcon对象,参数是图标资源,值为项目的资源文件中图标的地址
QIcon icon("F:/Windows QT/TrayIcon/bottom.png");
trayiconMenu = new QMenu(this);
//为托盘菜单添加菜单项
trayiconMenu->addAction(ui->action_quit);
//为托盘菜单添加分隔符
trayiconMenu->addSeparator();
//将创建的QIcon对象作为系统托盘图标
trayicon->setIcon(icon);
//显示托盘图标
trayicon->show();
//设置系统托盘提示
trayicon->setToolTip(tr("托盘测试"));
//将创建菜单作为系统托盘菜单
trayicon->setContextMenu(trayiconMenu);
//在系统托盘显示气泡消息提示
trayicon->showMessage(tr("hahaya"), tr("托盘测试"), QSystemTrayIcon::Information, 5000);
//为系统托盘绑定单击信号的槽 即图标激活时
connect(trayicon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(onSystemTrayIconClicked(QSystemTrayIcon::ActivationReason)));
4 实现槽函数onSystemTrayIconClicked
void MainWindow::onSystemTrayIconClicked(QSystemTrayIcon::ActivationReason reason)
{
switch(reason)
{
//单击
case QSystemTrayIcon::Trigger:
//双击
case QSystemTrayIcon::DoubleClick:
//恢复窗口显示
this->setWindowState(Qt::WindowActive);
this->show();
break;
default:
break;
}
}
5 当点击窗口的关闭按钮时,将程序托盘,则重写类的closeEvent函数
void MainWindow::closeEvent(QCloseEvent *event)
{
if(trayicon->isVisible())
{
hide();
event->ignore();
}
}
6 点击“退出”菜单的槽函数,点击退出时托盘
void MainWindow::on_action_quit_triggered()
{
this->hide();
this->close();
}
- //mainwindow.h
- #ifndef MAINWINDOW_H
- #define MAINWINDOW_H
- #include <QMainWindow>
- #include <QSystemTrayIcon>
- #include <QMenu>
- #include <QCloseEvent>
- namespace Ui {
- class MainWindow;
- }
- class MainWindow : public QMainWindow
- {
- Q_OBJECT
- public:
- explicit MainWindow(QWidget *parent = 0);
- ~MainWindow();
- private:
- Ui::MainWindow *ui;
- private slots:
- void on_action_quit_triggered();
- void onSystemTrayIconClicked(QSystemTrayIcon::ActivationReason reason);
- protected:
- void closeEvent(QCloseEvent *event);
- private:
- QSystemTrayIcon *trayicon;
- QMenu *trayiconMenu;
- };
- #endif // MAINWINDOW_H
- #include <QtGui>
- #include "mainwindow.h"
- #include "ui_mainwindow.h"
- MainWindow::MainWindow(QWidget *parent) :
- QMainWindow(parent),
- ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- trayicon = new QSystemTrayIcon(this);
- //创建QIcon对象,参数是图标资源,值为项目的资源文件中图标的地址
- QIcon icon("F:/Windows QT/TrayIcon/bottom.png");
- trayiconMenu = new QMenu(this);
- //为托盘菜单添加菜单项
- trayiconMenu->addAction(ui->action_quit);
- //为托盘菜单添加分隔符
- trayiconMenu->addSeparator();
- //将创建的QIcon对象作为系统托盘图标
- trayicon->setIcon(icon);
- //显示托盘图标
- trayicon->show();
- //设置系统托盘提示
- trayicon->setToolTip(tr("托盘测试"));
- //将创建菜单作为系统托盘菜单
- trayicon->setContextMenu(trayiconMenu);
- //在系统托盘显示气泡消息提示
- trayicon->showMessage(tr("hahaya"), tr("托盘测试"), QSystemTrayIcon::Information, 5000);
- //为系统托盘绑定单击信号的槽 即图标激活时
- connect(trayicon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(onSystemTrayIconClicked(QSystemTrayIcon::ActivationReason)));
- }
- MainWindow::~MainWindow()
- {
- delete ui;
- }
- void MainWindow::onSystemTrayIconClicked(QSystemTrayIcon::ActivationReason reason)
- {
- switch(reason)
- {
- //单击
- case QSystemTrayIcon::Trigger:
- //双击
- case QSystemTrayIcon::DoubleClick:
- //恢复窗口显示
- this->setWindowState(Qt::WindowActive);
- this->show();
- break;
- default:
- break;
- }
- }
- void MainWindow::closeEvent(QCloseEvent *event)
- {
- if(trayicon->isVisible())
- {
- hide();
- event->ignore();
- }
- }
- void MainWindow::on_action_quit_triggered()
- {
- this->hide();
- this->close();
- }
- //main.cpp
- #include <QtGui/QApplication>
- #include <QTextCodec>
- #include "mainwindow.h"
- int main(int argc, char *argv[])
- {
- QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
- QApplication a(argc, argv);
- MainWindow w;
- w.show();
- return a.exec();
- }
相关推荐
Qt 5.5 托盘功能实现 网上好多不能用的可能是Qt版本问题 本代码在Qt5.5.1编译通过
QT实现托盘功能,采用model,View加自定义委托模拟QQ的消息列表通知
Qt实现托盘全部常用功能示例源代码,可帮助新手快速掌握Qt托盘的使用,在Windows、Mac和Linux上可编译通过。
当我们使用一些常见的即时通讯软件,如QQ、微信等,点击关闭按钮后,并不是真正地关闭应用程序,...通过使用Qt框架提供的QSystemTrayIcon类,可以为自己的应用程序实现与QQ、微信等相似的最小化到托盘任务栏的功能。
QT2010.05版本写的定时关机程序,有最小化托盘功能,界面友好美观
本模板为美化QT界面系列中的一个,整体风格为桃子风格(效果预览链接:...同时自带部分有用系统功能(最小化托盘运行),可在其基础上进行二次开发。需要基于QT Creator进行使用。
QT最小化到托盘封装类。实现了windows平台上最小化到托盘的功能。
功能:程序最小化至托盘,实现程序一直在运行,可应用于不影响正常显示的服务器或客户端功能软件
[Qt Topic] – 全局热键、托盘功能和随机启动 配套http://blog.csdn.net/jasonblog/archive/2010/04/25/5525826.aspx
Qt5文件管理器,按详细信息排列功能,带文件查找,日历,系统托盘功能
qt实现的屏幕截图功能,同时有托盘,有快捷键,可以截图任意位置任意大小。
QT,C++使用技巧,实战应用开发小系统...详细介绍了一些Qt框架的各种功能和模块,以及如何使用Qt进行GUI开发、网络编程和跨平台应用开发等。 适用于初学者和有经验的开发者,能够帮助你快速上手Qt并掌握其高级特性。
C++使用Qt5实现的消息提醒功能 C++使用Qt5实现的消息提醒功能 C++使用Qt5实现的消息提醒功能 C++使用Qt5实现的消息提醒功能 C++使用Qt5实现的消息提醒功能 ...
1. Qt Modbus库提供了易于使用的API,使开发者可以快速而方便地实现Modbus通讯功能,减少了开发工作量。 2. Qt Modbus库支持多种不同的Modbus协议,包括RTU、ASCII和TCP,从而满足各种不同的需求。 3. Qt Modbus库...
qt随缘多开器支持批量导入账号,批量登陆,一键进入频道,一键进入指定频道,批量闭麦话筒,隐藏托盘图标,等等各种功能。 qt随缘多开器功能: 支持批量导入账号,拖拽添加,批量一键登录,高速稳定,支持任何系统...
播放器使用Qt5 编写的实现功能1.本地音乐播放2.网络歌曲在线播放3.类似qq的侧边栏自动隐藏4.系统托盘。播放器还有许多不足的地方希望可以与大家一同改进。
主要功能: 可设置检测的程序名称。 可设置udp通信端口。 可设置超时次数。 自动记录已重启次数。 自动记录最后一次重启时间。 是否需要重新刷新桌面。 可重置当前重启次数和最后重启时间。 自动隐藏的托盘运行或者...
1.15 入门级实例:地址薄查找功能 1.16 入门实例:从文件中加载与保存到文件 3.1.2 实例:C语言下文件读写操作 3.9 实例:一个简单的文本浏览的例子 3.10 实例:在指定文件系统中寻找一个文件 3.11实例:用Qt类读取...
仿酷狗音乐界面,实现歌曲列表、换肤、迷你模式、托盘菜单控制音乐播放功能。 - 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分...