Qt之设置系统托盘
来源:互联网 发布:微控制器是单片机 编辑:程序博客网 时间:2024/06/05 03:23
头文件:
#ifndef SYSTEMTRAYICON_H#define SYSTEMTRAYICON_H#include <QWidget>#include <QSystemTrayIcon>#include <QMenu>#include <QAction>#include <QCloseEvent>class SystemTrayIcon : public QWidget{ Q_OBJECTpublic: explicit SystemTrayIcon(QStringList strList, QIcon icon, QWidget *parent = 0); ~SystemTrayIcon(); void createAct(); void createTrayMenu(); void createTrayIcon();public slots: void slot_iconActivated(QSystemTrayIcon::ActivationReason reason);public: QAction *actFixed; //固定位置private: QSystemTrayIcon *m_trayIcon; //系统托盘 QMenu *menu; //菜单 QAction *actMin; //最小化 QAction *actNormal; //正常 QAction *actExit; //退出 QStringList m_strList; //托盘信息 QIcon m_icon; //托盘图标 QWidget *pWidget; //父对象};#endif // SYSTEMTRAYICON_H源文件:
#include "systemtrayicon.h"#include <QApplication>#include <QDebug>SystemTrayIcon::SystemTrayIcon(QStringList strList, QIcon icon, QWidget *parent) : QWidget(parent){ pWidget = parent; m_strList = strList; m_icon = icon; createAct(); createTrayMenu(); createTrayIcon();}SystemTrayIcon::~SystemTrayIcon(){}void SystemTrayIcon::createAct(){ actFixed = new QAction("锁定位置(&F)",this); actFixed->setCheckable(true); actFixed->setChecked(true); actMin = new QAction("最小化(&N)",this); connect(actMin,SIGNAL(triggered()),pWidget,SLOT(hide())); actNormal = new QAction("还 原(&R)",this); connect(actNormal,SIGNAL(triggered()),pWidget,SLOT(showNormal())); actExit = new QAction("退出(&Q)",this); connect(actExit,SIGNAL(triggered()),qApp,SLOT(quit()));}void SystemTrayIcon::createTrayMenu(){ menu = new QMenu((QWidget*)QApplication::desktop()); menu->addAction(actFixed); menu->addAction(actMin); menu->addAction(actNormal); menu->addSeparator(); //加入一个分离符 menu->addAction(actExit);}void SystemTrayIcon::createTrayIcon(){ if (!QSystemTrayIcon::isSystemTrayAvailable()) //判断系统是否支持系统托盘图标 { return; } m_trayIcon = new QSystemTrayIcon(pWidget); m_trayIcon->setIcon(m_icon); //设置图标图片 m_trayIcon->setToolTip(m_strList.at(1)); //托盘时,鼠标放上去的提示信息 m_trayIcon->showMessage(m_strList.at(0), m_strList.at(1), QSystemTrayIcon::Information, 10000); m_trayIcon->setContextMenu(menu); //设置托盘上下文菜单 m_trayIcon->show(); connect(m_trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(slot_iconActivated(QSystemTrayIcon::ActivationReason)));}void SystemTrayIcon::slot_iconActivated(QSystemTrayIcon::ActivationReason reason){ switch (reason) { case QSystemTrayIcon::Unknown: break; case QSystemTrayIcon::Context: break; case QSystemTrayIcon::DoubleClick: pWidget->setWindowState(Qt::WindowActive); pWidget->show(); break; case QSystemTrayIcon::Trigger: break; case QSystemTrayIcon::MiddleClick: break; default: break; }}父对象中引用(设置系统托盘):
//设置任务栏系统托盘 QStringList strList; strList << "Rose" << "Rose V1.0"; QIcon icon(":/images/3.png"); SystemTrayIcon *trayIcon = new SystemTrayIcon(strList, icon, dlg); connect(trayIcon->actFixed, SIGNAL(triggered(bool)), dlg, SLOT(slot_fixed(bool)));效果图:
0 0
- Qt之设置系统托盘
- qt之系统托盘
- QT之系统托盘
- Qt编程技巧 系统托盘设置
- Qt之任务栏系统托盘图标
- Qt之任务栏系统托盘图标
- Qt之任务栏系统托盘图标
- Qt之任务栏系统托盘图标
- Qt之任务栏系统托盘图标
- Qt之系统托盘(QSystemTrayI…
- Qt之任务栏系统托盘图标
- Qt之任务栏系统托盘图标
- Qt之任务栏系统托盘图标
- Qt系统托盘
- Qt 系统托盘
- Qt 系统托盘
- Qt之系统托盘(QSystemTrayIcon详解)
- Qt之系统托盘(QSystemTrayIcon详解)
- java获取Weblogic JNDI数据源
- 交叉编译mysql客户端libmysql
- Android开源:数据库ORM框架GreenDao学习(一)基础使用篇
- 服务系能查看-通过gc和cpu定位代码问题
- Python图形界面编程---Tkinter模块基础
- Qt之设置系统托盘
- iOS自定义的表情键盘
- rxjava(三)Subject与Scheduler
- Java 7之基础 - 强引用、弱引用、软引用、虚引用
- C# WinForm程序退出的方法
- Python 验证码识别
- Java-Vextor(1)
- iOS开发之检查APP版本更新
- mongodb 3.2.7版本 的分片集群安装demo