Qt 之 QSystemTrayIcon

news2025/1/16 21:52:55

文章目录

  • 一、QSystemTrayIcon是什么
  • 二、属性
  • 三、公共类型
  • 四、信号


提示:以下是本篇文章正文内容,下面案例可供参考

一、QSystemTrayIcon是什么

QSystemTrayIcon类为应用程序在系统托盘中提供一个图标。
如下图:
在这里插入图片描述

现代操作系统通常在桌面上提供一个特殊的区域,称为系统托盘或通知区域,长时间运行的应用程序可以显示图标和短消息。
如下图:
在这里插入图片描述
像这样弹出一个信息。

二、属性

检查是否有托盘在用户界面上

QSystemTrayIcon::isSystemTrayAvailable()

设置托盘上的右键后显示的东西:

setContextMenu(QMenu*)

使用如下:

	QMenu *menu = new QMenu(this);
    
    QAction *action1 = new QAction("action 1",nullptr);
    QAction *action2 = new QAction("action 2",nullptr);
    QAction *action3 = new QAction("action 3",nullptr);
    
    menu->addAction(action1);
    menu->addAction(action2);
    menu->addAction(action3);
    
    tray.setContextMenu(menu);

	tray.show();//注意,初始化之后一定要调用show()

在这里插入图片描述
因为没有设置图标(Icon)所以是空白,但通过占位,我们就可以发现他了。

显示一个气球消息:

tray.showMessage(Title,Message,icon,显示时间);

显示时间的单位为毫秒

返回菜单:

QMenu * contextMenu()

设置托盘图标:

setIcon(const QIcon & icon)

设置提示:

setToolTip(const QString & tip)

托盘是否可见

bool isVisible() 

隐藏托盘

void hide()

设置托盘是否可见

setVisible(bool visible)

三、公共类型

系统托盘被激活的原因:

QSystemTrayIcon::Unknown 0 未知原因
QSystemTrayIcon::Context 1 系统托盘的上下文菜单请求
QSystemTrayIcon::DoubleClick 2 双击系统托盘
QSystemTrayIcon::Trigger 3 单击系统托盘
QSystemTrayIcon::MiddleClick 4 鼠标中键点击系统托盘

showMessage()显示的图标:

QSystemTrayIcon::NoIcon	0	无图标显示
QSystemTrayIcon::Information	1	一个信息图标显示
QSystemTrayIcon::Warning	2	一个标准的警告图标显示
QSystemTrayIcon::Critical	3	一个严重的警告图标显示

四、信号

当激活托盘时发送:

void activated(QSystemTrayIcon::ActivationReason reason)

双击:

connect(&tray,SIGNAL(activated(QSystemTrayIcon::ActivationReason)),this,SLOT(active(QSystemTrayIcon::ActivationReason)));

void Widget::active(QSystemTrayIcon::ActivationReason r)
{
    if(r == QSystemTrayIcon::DoubleClick)
    {
        qDebug() << "double clicked";
    }
}

当showMessage()显示的东西被点击时,显示。

void messageClicked()
connect(&tray,SIGNAL(messageClicked()),this,SLOT(clickMessage()));

void Widget::clickMessage()
{
    qDebug() << "message click";
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

“深度学习”学习日记。与学习有关的技巧--Bacth Normalization

2023.1.25 现在已经学习过了&#xff0c;如果我们设置了合适的权重初始值&#xff0c;则各层的激活值分布会呈现适当的广度&#xff0c;从而可以时神经网络模型顺利的进行学习。 而 batch normalization算法 的思想就是为了使得各层有适当的广度&#xff0c;“强制性”地调整…

No package ‘vips‘ found系列问题解决方案

目录 系列报错集合 错误1 错误2 错误3 解决方案清单 系列报错集合 错误1 No package vips found Package vips was not found in the pkg-config search path. Perhaps you should add the directory containing vips.pc to the PKG_CONFIG_PATH environment variable N…

医疗实体及关系识别挑战赛

赛题概要 请本赛题排行榜前10的队友通过作品提交源代码&#xff0c;模型以及说明文档&#xff0c;截止时间为09/27/23:59:59.若文件过大&#xff0c;可发送至官网邮箱&#xff1a;AICompetitioniflytek.com。若截止时间内未提交&#xff0c;官方回通过电话联系相关选手&#x…

JavaEE8-Bean的生命周期

目录 1.Bean执行原理分析 2.Bean生命周期 2.1.实例化Bean&#xff1a;为Bean分配内存空间。&#xff08;相当于买房&#xff0c;从无到有&#xff09; 2.2.设置属性&#xff1a;Bean注入和装配。&#xff08;执行依赖类的注入&#xff1a;A需要使用B的方法&#xff0c;先初…

win32com操作word API精讲 第六集 Range(四)对齐和缩进

本课程《win32com操作word API精讲&项目实战》同步在B站、今日头条、视频号及本公众号发布。其中本平台以发布文字教程为主&#xff0c;所有平台ID均为&#xff1a;一灯编程 今天是大年初二&#xff0c;一灯在此祝愿各位朋友兔年吉祥&#xff0c;达成所想。 本节课主要讲解…

机器学习(六):模型评估

文章目录 模型评估 一、分类模型评估 二、 回归模型评估 三、拟合 1、欠拟合 2、过拟合 模型评估 模型评估是模型开发过程不可或缺的一部分。它有助于发现表达数据的最佳模型和所选模型将来工作的性能如何。 按照数据集的目标值不同&#xff0c;可以把模型评估分为分类…

Python信用卡欺诈检测 [TensorFlow]

Python信用卡欺诈检测 [TensorFlow] 提示&#xff1a;前言 Python 信用卡欺诈检测 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录Python信用卡欺诈检测 [TensorFlow]前言一、导入包二、加载数据三、加载数据四、 …

WebAssembly编译之(1)-asm.js及WebAssembly原理介绍

WebAssembly介绍及产生历程 1、什么是WebAssembly、为什么WASM&#xff1f; 我们知道Web的应用几乎涵盖了大半个互联网应用&#xff1b;越多越多的Web应用层出不穷&#xff0c;而然Web最致命的劣势就是其在浏览其的运行效率特忙&#xff0c;尤其是web游戏的体验不佳。 而Web…

ubuntu安装Espeak实现tts文字转语音

目录参考一、介绍二、安装安装包安装查看安装版本和espeak-data路径直接尝试安装中文包三、生产wav文件四、代码引入参考 ubuntu完美安装espeak支持中文和粤语 不再报错:Full dictionary is not installed for ‘zh’ 一、介绍 **用途&#xff1a;**可识别多语言的朗读软件 …

JavaEE day4 初识CSS

HTML如果说是前端网页中的骨架 那么CSS就是用来对骨架进行排版美化的、 CSS全称为 Cascading Style Sheets 层叠样式表 预备知识&#xff1a; html中的所有元素都有两个通用的属性&#xff1a;id和class id&#xff1a;唯一标识符&#xff0c;一个html组成元素中&#xff…

Day07 C++STL入门基础知识四——vector容器(上) 基本概念-构造函数-赋值操作-容量大小【全面深度剖析+例题代码展示】

Leave no stone unturned. 竭尽全力 文章目录1. 基本概念1.1 功能1.2 与普通数组相同点与不同点1.3 动态扩展2. 构造函数2.1 功能描述2.2 函数原型2.3 代码展示3. 赋值操作3.1 函数原型3.2 代码展示4. 容量及大小4.1 函数原型4.2 代码展示4.2.1 empty()4.2.1.1 代码展示4.2.1.2…

恶意代码分析实战 1 静态分析基础技术

1.1 Lab 1-1 对Lab01-01.exe和Lab01-01.dll进行分析 问题 将文件上传至http://www.VirusTotal.com进行分析并查看报告。文件匹配到了已有的反病毒软件特征吗? 首先查看Lab-01-01.exe。 然后查看Lab01-01.dll。 这两个文件应该都是恶意文件。 这些文件是什么时候编译的?…

20230125英语学习

Office Buzzwords You’re Using That Annoy All Your Co-workers 说话之道&#xff1a;避开办公室行话的“雷区” Joining a new office means having to learn how to communicate with your team.But in order to do that well, it sometimes means having to learn your …

索引优化示例

目录 1.单表优化 2.两表优化 3.三表优化 4.总结 1.单表优化 创建索引前 (1)先按照where条件创建索引 按照查询条件中的三个项目创建索引&#xff0c;并且索引中的项目存在顺序&#xff0c;分别是1,2和3。 (2)创建索引 type 变成了 range,这是可以忍受的。但是 extra 里使用…

恶意代码分析实战 4 识别汇编中的C代码结构

4.1 Lab06-01.exe 由main函数调用的唯一子过程中发现的主要代码结构是什么&#xff1f; 使用Strings进行查看&#xff0c;需要注意最后的这两个字符串&#xff0c;一个是“没有网”&#xff0c;另一个是“联网成功”。 IDA 中查看图结构。 明显是if-else结构。 位于0x4010…

进程间通信/管道/消息队列/共享内存/信号量

本文重点目标&#xff1a; ⭐进程间通信介绍⭐ ⭐管道⭐ ⭐消息队列⭐ ⭐共享内存⭐ ⭐信号量⭐ 1.进程间通信介绍 什么是通信&#xff1f; 通信指的是数据传输、资源共享、通知事件和进程控制。 ①数据传输&#xff1a;一个进程需要将它的数据发送给另一个进程 ②资源共享&a…

【GIS】高分辨率遥感影像智能解译

1 绪论 随着航空科技工业的不断成熟与发展&#xff0c;我国遥感卫星研制能力不断攀升&#xff0c;发射数量逐年提高&#xff0c;在轨运行的遥感卫星为社会生产及居民日常生活提供了巨大的支持与便利。我国目前同时在轨运行的遥感卫星数量已超过60颗&#xff0c;每天获取并传回…

LeetCode[990]等式方程式的可满足性

难度&#xff1a;中等题目&#xff1a;给定一个由表示变量之间关系的字符串方程组成的数组&#xff0c;每个字符串方程 equations[i]的长度为 4&#xff0c;并采用两种不同的形式之一&#xff1a;"ab"或 "a!b"。在这里&#xff0c;a 和 b 是小写字母&#…

【Python学习003】高效数据结构-列表

【Python学习003】高效数据结构-列表 我们的公众号是【朝阳三只大明白】&#xff0c;满满全是干货&#xff0c;分享近期的学习知识以及个人总结&#xff08;包括读研和IT&#xff09;&#xff0c;希望大家一起努力&#xff0c;一起加油&#xff01;求关注&#xff01;&#xf…

浏览器使用本地硬盘上的JS文档

网页通过<script>标记可以引入在线的js文档&#xff0c;只有把网页保存在本地硬盘才能使用相对路径引入本地js文档&#xff0c;普通浏览器难以实现在线页面上引入本地js文档。怎么解决这个问题呢&#xff1f;首先准备好需要引入的JS文档&#xff0c;可以是成熟的JS库&…