QT 范例阅读:系统托盘 The System Tray Icon example

main.cpp

    QApplication app(argc, argv);//判断系统是否支持 系统托盘功能if (!QSystemTrayIcon::isSystemTrayAvailable()) {QMessageBox::critical(0, QObject::tr("Systray"),QObject::tr("I couldn't detect any system tray ""on this system."));return 1;}//关闭 隐式退出在最后一个窗口关闭时(这个示例该行语句注释也没区别)QApplication::setQuitOnLastWindowClosed(false);

windows.h

protected://重载关闭事件void closeEvent(QCloseEvent *event) override;private slots://点击托盘图标时的处理void iconActivated(QSystemTrayIcon::ActivationReason reason);//显示托盘弹出消息void showMessage();//点击托盘消息后的处理void messageClicked();private:   //托盘图标右键 菜单动作QAction *minimizeAction;QAction *maximizeAction;QAction *restoreAction;QAction *quitAction;//系统托盘QSystemTrayIcon *trayIcon;//托盘菜单QMenu *trayIconMenu;
void Window::createActions()
{minimizeAction = new QAction(tr("Mi&nimize"), this);connect(minimizeAction, &QAction::triggered, this, &QWidget::hide);maximizeAction = new QAction(tr("Ma&ximize"), this);connect(maximizeAction, &QAction::triggered, this, &QWidget::showMaximized);restoreAction = new QAction(tr("&Restore"), this);connect(restoreAction, &QAction::triggered, this, &QWidget::showNormal);quitAction = new QAction(tr("&Quit"), this);connect(quitAction, &QAction::triggered, qApp, &QCoreApplication::quit);
}void Window::createTrayIcon()
{trayIconMenu = new QMenu(this);trayIconMenu->addAction(minimizeAction);trayIconMenu->addAction(maximizeAction);trayIconMenu->addAction(restoreAction);trayIconMenu->addSeparator();trayIconMenu->addAction(quitAction);trayIcon = new QSystemTrayIcon(this);trayIcon->setContextMenu(trayIconMenu);
}//是否显示托盘图标connect(showIconCheckBox, &QAbstractButton::toggled, trayIcon, &QSystemTrayIcon::setVisible);//托盘消息点击事件    connect(trayIcon, &QSystemTrayIcon::messageClicked, this, &Window::messageClicked);//托盘图标点击事件connect(trayIcon, &QSystemTrayIcon::activated, this, &Window::iconActivated);void Window::closeEvent(QCloseEvent *event)
{//如果显示了托盘,关闭事件忽略,窗体隐藏if (trayIcon->isVisible()) {QMessageBox::information(this, tr("Systray"),tr("The program will keep running in the ""system tray. To terminate the program, ""choose <b>Quit</b> in the context menu ""of the system tray entry."));hide();event->ignore();}
}//托盘图标点击消息处理
void Window::iconActivated(QSystemTrayIcon::ActivationReason reason)
{switch (reason) {case QSystemTrayIcon::Trigger:case QSystemTrayIcon::DoubleClick: //改变图标iconComboBox->setCurrentIndex((iconComboBox->currentIndex() + 1) % iconComboBox->count());break;case QSystemTrayIcon::MiddleClick:showMessage();break;default:;}
}//显示消息
void Window::showMessage()
{showIconCheckBox->setChecked(true);QSystemTrayIcon::MessageIcon msgIcon = QSystemTrayIcon::MessageIcon(typeComboBox->itemData(typeComboBox->currentIndex()).toInt());if (msgIcon == QSystemTrayIcon::NoIcon) {QIcon icon(iconComboBox->itemIcon(iconComboBox->currentIndex()));trayIcon->showMessage(titleEdit->text(), bodyEdit->toPlainText(), icon,durationSpinBox->value() * 1000);} else {trayIcon->showMessage(titleEdit->text(), bodyEdit->toPlainText(), msgIcon,durationSpinBox->value() * 1000);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/451189.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React16源码: React中处理hydrate的核心流程源码实现

hydrate 1 &#xff09;概述 hydrate 在react当中不算特别重要, 但是很多时候会用到的一个API这个 API 它主要作用就是在进入第一次渲染的时候&#xff0c;如果本身 dom 树上面已经有一个dom结构存在是否可以去利用这一部分已经存在的dom&#xff0c;然后去避免掉在第一次渲染…

基于springboot的宠物店系统的设计与实现

文章目录 项目介绍主要功能截图&#xff1a;部分代码展示设计总结项目获取方式 &#x1f345; 作者主页&#xff1a;超级无敌暴龙战士塔塔开 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、 简历模板、学习资料、面试题库【关注我&#xff0c;都给你】 &…

两个重要极限【高数笔记】

【第一个&#xff1a;lim &#xff08;sinx / x&#xff09; 1, x -- > 0】 1.本质&#xff1a; lim &#xff08;sin‘&#xff1f;’ / ‘&#xff1f;’&#xff09; 1, ‘&#xff1f;’ -- > 0&#xff1b;保证‘&#xff1f;’ -- > 0,与趋向无关 2.例题&#x…

Android开发--实时监测系统+部署故障诊断算法

0.项目整体思路介绍&#xff1a; 搭建无人装备模拟实验平台&#xff0c;使用采集器对数据进行采集&#xff0c;通过网络通信Udp协议发送到安卓端&#xff0c;安卓端作界面显示&#xff0c;算法使用matlab仿真后&#xff0c;用C语言实现。将采集器采集到的数据经过处理后训练&a…

Prime UI 这个 UI 组件库,可以同时支持 Vue、React、Angular !!!

对于前端开发同学来说&#xff0c;一个好用的组件库可以说是开发中必不可少的。 比如技术栈是 Vue 的前端同学用的比较多是 Element UI、Element Plus UI Naive UI 等。 技术栈如果是 React 的同学则一般使用 Ant Design。 技术栈是是 Angular 的同学则一般使用 Angular Mate…

图论练习4

内容&#xff1a;染色划分&#xff0c;带权并查集&#xff0c;扩展并查集 Arpa’s overnight party and Mehrdad’s silent entering 题目链接 题目大意 个点围成一圈&#xff0c;分为对&#xff0c;对内两点不同染色同时&#xff0c;相邻3个点之间必须有两个点不同染色问构…

24.云原生ArgoCD高级之钩子

云原生专栏大纲 文章目录 Argo CD钩子如何定义钩子钩子删除策略 Argo CD钩子 Argo CD 是一个用于部署和管理 Kubernetes 应用程序的工具&#xff0c;它提供了一种声明式的方式来定义和自动化应用程序的部署过程。Argo CD 钩子&#xff08;Hooks&#xff09;是一种机制&#x…

远程手机搭建Termux环境,并通过ssh连接Termux

背景 Termux只能通过鼠标点击&#xff0c;无法使用电脑键盘&#xff0c;输入速度很慢&#xff0c;你想通过ssh 连接Termux&#xff0c;获得友好体验搞了个云手机&#xff0c;想像普通手机那样充当服务器想把自己的手机公开到局域网中供同事调试想把自己的模拟器公开到局域网中…

【MySQL】——数据定义

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

【考研408】操作系统笔记

文章目录 [toc] 计算机系统概述操作系统的基本概念操作系统的概念和特征操作系统的目标和功能&#xff08;**处理器管理、存储器管理、设备管理、文件管理、向用户提供接口、扩充机器**&#xff09; 操作系统的发展与分类操作系统的运行环境操作系统的运行机制 操作系统的体系结…

从MySQL到TiDB:兼容性全解析

MySQL 在高并发和大数据量场景下&#xff0c;单个实例的扩展性有限。而 TiDB 作为一款分布式NewSQL数据库&#xff0c;设计之初就支持水平扩展&#xff08;Scale-Out&#xff09;&#xff0c;通过增加节点来线性提升处理能力和存储容量&#xff0c;能够很好地应对大规模数据和高…

C系列-柔性数组

&#x1f308;个人主页: 会编程的果子君 ​&#x1f4ab;个人格言:“成为自己未来的主人~” 目录 ​编辑 柔性数组 柔性数组的特点 柔性数组的使用 柔性数组的优势 柔性数组 也许你从来没有听说过柔性数组这个概念&#xff0c;但是它确实是存在的&#xff0c;C99中&#…