当前位置: 首页 > news >正文

Qt 自定义菜单 托盘菜单

托盘菜单实现:通过QSystemTrayIcon+QMenu+QAction即可完美实现!

实现方式:createActions用于创建菜单、菜单项,translateActions用于设置文本、实现多语化,translateAccount用于设置用户空间配额。

void TrayMenu::createActions()
{help_menu = new QMenu();//创建菜单项action_show = new QAction(this);action_quit = new QAction(this);action_login_home = new QAction(this);action_account = new QAction(this);action_user_space = new QAction(this);action_help = new QAction(this);action_about = new QAction(this);action_check_update = new QAction(this);action_setting = new QAction(this);help_menu->setIcon(QIcon(":/icon/help"));action_show->setIcon(QIcon(":/icon/open"));action_login_home->setIcon(QIcon(":/icon/home"));action_account->setIcon(QIcon(":/icon/user"));action_help->setIcon(QIcon(":/icon/help"));action_about->setIcon(QIcon(":/icon/about"));action_check_update->setIcon(QIcon(":/icon/update"));action_setting->setIcon(QIcon(":/icon/set"));action_quit->setIcon(QIcon(":/icon/quit"));//添加菜单项help_menu->addAction(action_about);help_menu->addAction(action_help);help_menu->addAction(action_check_update);this->addAction(action_show);this->addAction(action_login_home);this->addSeparator();this->addAction(action_account);this->addAction(action_user_space);this->addSeparator();this->addAction(action_setting);this->addMenu(help_menu);this->addAction(action_quit);//设置信号连接connect(action_show, SIGNAL(triggered(bool)), this, SIGNAL(showWidget()));connect(action_quit, SIGNAL(triggered(bool)), this, SIGNAL(logoutWidget()));connect(action_setting, SIGNAL(triggered(bool)), this, SIGNAL(setUp()));connect(action_about, SIGNAL(triggered(bool)), this, SIGNAL(aboutUs()));connect(action_login_home, SIGNAL(triggered(bool)), MenuAction::getInstance(), SLOT(openLoginHome()));connect(action_help, SIGNAL(triggered(bool)), MenuAction::getInstance(), SLOT(openHelpMe()));QObject::connect(action_check_update, SIGNAL(triggered(bool)), MenuAction::getInstance(), SLOT(openCheckUpdate()));
}void TrayMenu::translateActions()
{help_menu->setTitle(tr("help"));action_show->setText(tr("open"));action_quit->setText(tr("quit"));action_login_home->setText(tr("login home"));this->translateAccount();action_help->setText(tr("instruction"));action_about->setText(tr("about us"));action_check_update->setText(tr("check update"));action_setting->setText(tr("setting"));
}void TrayMenu::translateAccount()
{action_user_space->setText(tr("use:") + use_space + QString("  ") + tr("total:") + total_space);
}托盘菜单项建立完成之后,在建立自己的托盘,包括:托盘图标、托盘提示信息等。
QSystemTrayIcon *system_tray = new QSystemTrayIcon();//放在托盘提示信息、托盘图标
system_tray ->setToolTip(QString("我就是托盘"));
system_tray ->setIcon(QIcon(":/icon/login"));TrayMenu *tray_menu = new TrayMenu();
system_tray->setContextMenu(tray_menu);//点击托盘执行的事件
connect(system_tray , SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(iconIsActived(QSystemTrayIcon::ActivationReason)));connect(tray_menu, SIGNAL(showWidget()), this, SLOT(showNormal()));//显示托盘
system_tray->show();//托盘显示提示信息
system_tray->showMessage(QString("托盘标题"), QString("托盘显示内容"));

 

相关文章:

Qt 自定义菜单 托盘菜单

托盘菜单实现:通过QSystemTrayIconQMenuQAction即可完美实现! 实现方式:createActions用于创建菜单、菜单项,translateActions用于设置文本、实现多语化,translateAccount用于设置用户空间配额。 void TrayMenu::createActions(…...

channel并发编程

不要通过共享内存通信,要通过通信共享内存。 channel是golang并发编程中一种重要的数据结构,用于多个goroutine之间进行通信。 我们通常可以把channel想象成一个传送带,将goroutine想象成传送带周边的人,一个传送带的上游放上物品…...

苹果新健康专利:利用 iPhone、Apple Watch 来分析佩戴者的呼吸情况

根据美国商标和专利局(USPTO)公示的清单,苹果获得了一项健康相关的技术专利,可以利用 iPhone、Apple Watch 来分析佩戴者的呼吸系统。 苹果在专利中概述了一种测量用户呼吸功能的系统,通过 iPhone 上的光学感测单元&am…...

数据分析基础-数据可视化02-不同数据类型的可视化概念及原则

将数据空间映射到颜色空间。 数据空间:连续或分类 数据可以被划分为两个主要的数据空间:连续数据和分类数据。这两种数据空间有不同的特点和适用的分析方法。 连续数据(Continuous Data): 连续数据是指可以在某个范…...

QT项目使用Qss的总结

什么是QSS QSS称为Qt Style Sheets也就是Qt样式表,它是Qt提供的一种用来自定义控件外观的机制。QSS大量参考了CSS的内容,只不过QSS的功能比CSS要弱很多,体现在选择器要少,可以使用的QSS属性也要少很多,并且并不是所有…...

suricata初体验+wireshark流量分析

目录 一、suricata介绍 1.下载安装 2.如何使用-攻击模拟 二、wireshark流量分析 1.wireshark过滤器使用 2.wireshark其他使用 一、suricata介绍 1.下载安装 通过官网下载suricata,根据官网步骤进行安装。 官网地址: https://documentation.wazuh.…...

机器学习:异常检测实战

文章目录 Anomaly Detection目录任务介绍数据集方法评估Baseline报告报告评价标准 Anomaly Detection 目录 任务介绍 无监督的异常检测 数据集 方法 autoencode 是否能够还原出原始类型图片,基于重构loss来判断是否正常 重构误差当作异常分数 评估 采用ROC和AUC…...

数据结构1

数据结构是计算机科学中存储和组织数据的一种方式,它定义了数据的表示方式和对数据进行操作的方法,常见的数据结构包括数组、栈、链表、队列、树、图等。 目录 一、常见的数据结构 1.数组 2.栈 3.队列 4.链表 5.树 6.图 一、常见的数据结构 1.数…...

自然语言处理学习笔记(七)————字典树效率改进

目录 1. 首字散列其余二分的字典树 2.双数组字典树 3.AC自动机(多模式匹配) (1)goto表 (2)output表 (3)fail表 4.基于双数组字典树的AC自动机 字典树的数据结构在以上的切分算法中已经很快了&#x…...

forEach和map有什么区别,使用场景?

forEach和map有什么区别,使用场景? 区别什么意思?forEach: 不直接改变原始数组,但可以在回调中更改原始数组。 区别 forEach 和 map 都是数组的常用方法,但它们有不同的目的和用法。下面是它们之间的主要区别以及各自…...

【Spring Boot】SpringBoot完整实现社交网站系统

一个完整的社交网站系统需要涉及到用户登录、发布动态、关注、评论、私信等各方面。这里提供一个简单的实现示例&#xff0c;供参考。 前端代码 前端使用Vue框架&#xff0c;以下是部分代码示例&#xff1a; 登录页&#xff1a; <template><div><input type…...

Modbus转Profinet网关连接三菱变频器博图快速配置

本案例将分享如何使用兴达易控的modbus转profinet网关&#xff08;XD-MDPN100&#xff09;来连接西门子1200系列plc&#xff0c;并实现三菱变频器的485通讯兼容转modbusTCP通信。通过在博图中进行配置&#xff0c;我们可以实现设备之间的连接和通信。 首先&#xff0c;我们需要…...

8.9 【C语言】有关指针的小结

&#xff08;1&#xff09;首先要准确理解指针的含义。 &a是变量a的地址&#xff0c;也可称为变量a的指针。 指针变量是存放地址的变量。 指针变量的值是一个地址。 指针变量也称为地址变量&#xff0c;它的值是地址。 &#xff08;2&#xff09;在C语言中&#xff0c…...

WordPress Nginx伪静态规则设置以及二级目录规则

WordPress Nginx伪静态规则设置以及二级目录规则&#xff08;wordpress不是安装在根目录的情况&#xff09; 根目录下WordPress的伪静态规则&#xff1a; location / {if (-f $request_filename/index.html){rewrite (.*) $1/index.html break;}if (-f $request_filename/ind…...

2023年高教社杯 国赛数学建模思路 - 复盘:人力资源安排的最优化模型

文章目录 0 赛题思路1 描述2 问题概括3 建模过程3.1 边界说明3.2 符号约定3.3 分析3.4 模型建立3.5 模型求解 4 模型评价与推广5 实现代码 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 描述 …...

React内置函数之startTransition与useTransition

React内置函数之startTransition&#xff0c;useTransition 在React中&#xff0c;使用startTransition和useTransition这两个内置函数可以帮助我们更好地管理组件的过渡状态。这两个函数的出现&#xff0c;旨在提供一种简单而强大的方式&#xff0c;来处理组件状态的变化&…...

观察者模式简介

概念&#xff1a; 观察者模式&#xff08;Observer Pattern&#xff09;是一种行为型设计模式&#xff0c;用于在对象之间建立一对多的依赖关系&#xff0c;当一个对象的状态发生变化时&#xff0c;其相关依赖对象会自动收到通知并进行相应处理。 特点&#xff1a; 松耦合&a…...

统计程序两个点之间执行的指令数量

环境:支持perf ubuntu安装 apt-get install linux-tools-common linux-tools-generic linux-tools-uname -randroid 一般自带simpleperf 分析 两个点作差, 求中间结果; *(int*)nullptr 0;案例 断点 1 代码 #define SETPOINT(...) do { *(int*)nullptr 0; } while(0…...

时序预测 | MATLAB实现基于TSO-XGBoost金枪鱼算法优化XGBoost的时间序列预测(多指标评价)

时序预测 | MATLAB实现基于TSO-XGBoost金枪鱼算法优化XGBoost的时间序列预测(多指标评价) 目录 时序预测 | MATLAB实现基于TSO-XGBoost金枪鱼算法优化XGBoost的时间序列预测(多指标评价)预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab实现基于TSO-XGBoost金枪鱼算…...

java- ConcurrentHashMap 并发

1. ConcurrentHashMap 并发 1.1. 减小锁粒度 减小锁粒度是指缩小锁定对象的范围&#xff0c;从而减小锁冲突的可能性&#xff0c;从而提高系统的并发能力。减小锁粒度是一种削弱多线程锁竞争的有效手段&#xff0c;这种技术典型的应用是 ConcurrentHashMap(高性能的 HashMap)…...

java练习8.100m小球落地

题目: 如一个小球从100米高度自由落下&#xff0c;每次落地后就反跳回原高度的一半。 那么求它在第10次落地时&#xff0c;共经过多少米&#xff1f;第10次反弹多高&#xff1f; public static void main(String[] args) {/*假如一个小球从100米高度自由落下&#xff0c;每次落…...

Android JNI系列详解之生成指定CPU的库文件

一、前提 这次主要了解Android的cpu架构类型&#xff0c;以及在使用CMake工具的时候&#xff0c;如何指定生成哪种类型的库文件。 如上图所示&#xff0c;是我们之前使用CMake工具默认生成的四种cpu架构的动态库文件&#xff1a;arm64-v8a、armeabi-v7a、x86、x86_64&#xff0…...

Leetcode每日一题:1448. 统计二叉树中好节点的数目

原题 给你一棵根为 root 的二叉树&#xff0c;请你返回二叉树中好节点的数目。 「好节点」X 定义为&#xff1a;从根到该节点 X 所经过的节点中&#xff0c;没有任何节点的值大于 X 的值。 示例 1&#xff1a; 输入&#xff1a;root [3,1,4,3,null,1,5] 输出&#xff1a;4 解…...

华为OD七日集训第2期 - 按算法分类,由易到难,循序渐进,玩转OD(文末送书)

目录 一、适合人群二、本期训练时间三、如何参加四、7日集训第2期五、精心挑选21道高频100分经典题目&#xff0c;作为入门。第1天、逻辑分析第2天、字符串处理第3天、数据结构第4天、递归回溯第5天、二分查找第6天、深度优先搜索dfs算法第7天、动态规划 六、集训总结1、《代码…...

3d max插件CG MAGIC中的蜂窝材质功能可提升效率吗?

工作中能提升效率也都是大家所想的&#xff0c;对于设计师的一个设计过程中&#xff0c;可能想怎么样可以更快呀&#xff0c;是哪个步骤慢了呢&#xff1f; 这样的结果只能说会很多&#xff0c;但是建模这个步骤&#xff0c;肯定是有多无少的。 为了让模型更加逼真&#xff0c…...

一句话木马攻击复现:揭示黑客入侵的实战过程

这篇文章旨在用于网络安全学习&#xff0c;请勿进行任何非法行为&#xff0c;否则后果自负。 准备环境 OWASP虚拟机xfp 7与xshell 7 ​ DVWA系统默认的账号密码均为&#xff1a;admin/admin 1、命令注入中复现 ​ 攻击payload 127.0.0.1 | echo "<?php eval(…...

【游戏开发教程】Unity Cinemachine快速上手,详细案例讲解(虚拟相机系统 | 新发出品 | 良心教程)

文章目录 一、前言二、插件下载三、案例1&#xff1a;第三人称自由视角&#xff0c;Free Look character场景1、场景演示2、组件参数2.1、CinemachineBrain&#xff1a;核心2.2、CinemachineFreeLook&#xff1a;第三人称自由视角相机2.2.1、设置Follow&#xff1a;跟随2.2.2、…...

当图像宽高为奇数时,如何计算 I420 格式的uv分量大小

背景 I420 中 yuv 数据存放在3个 planes 中。 网上一般说 I420 数据大小为 widthheight1.5 但是当 width 和 height 是奇数时&#xff0c;这个计算公式会有问题。 I420 中 u 和 v 的宽高分别为 y 的一半。 但是当不能整除时&#xff0c;是如何取整呢&#xff1f;向上还是向下&…...

结构型模式-代理模式

代理模式* 定义&#xff1a;在代理模式&#xff08;Proxy Pattern&#xff09;中&#xff0c;一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。在代理模式中&#xff0c;我们创建具有现有对象的对象&#xff0c;以便向外界提供功能接口。 意图&#xff1a;为其…...

SpringBoot+Redis BitMap 实现签到与统计功能

最近项目里需要集成签到和统计功能&#xff0c;连续签到后会给用户发放一些优惠券和奖品&#xff0c;以此来吸引用户持续在该品台进行活跃。下面我们一些来聊一聊目前主流的实现方案。 因为签到和统计的功能涉及的数据量比较大&#xff0c;所以在如此大的数据下利用传统的关系…...

wordpress解除上传限制/百度推广投诉中心

linux minicom 命令详解功能说明&#xff1a;调制解调器通信程序。语  法&#xff1a;minicom [-8lmMostz][-a ][-c ][-C<取文件>][-d<编号>][-p<模拟终端机>][-S ][配置文件]补充说明&#xff1a;minicom是一个相当受欢迎的PPP拨号连线程序。参  数&…...

nas可以做网站下载服务器吗/营业推广的方式有哪些

这篇文章主要介绍了基于Python爬取股票数据过程详解,文中通过示例代码介绍的非常详细&#xff0c;对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下基本环境配置python 3.6pycharmrequestscsvtime相关模块pip安装即可目标网页分析网页一切的一切都在图里找到数…...

北京的网站制作公司/百度知道个人中心

电脑中右键不能新建word和excel文档怎么办开始&#xff0c;找到运行命&#xff0c;输入regedit&#xff0c;打开注册表。在左侧找到hkey_classes_root目录&#xff0c;并展开。首先&#xff0c;我们利用ctrlf快捷键&#xff0c;查找“docx”的位置&#xff0c;当然这里也可以自…...

做外贸建网站/免费建站网站网页

问题及代码&#xff1a; /*。 *Copyright(c)2014,烟台大学计算机学院 *All right reserved, *文件名&#xff1a;test.cpp *作者&#xff1a;liu_feng_zi_ *完成日期&#xff1a;2014年12月9日 *版本号&#xff1a;v1.0 * 问题描述&#xff1a; *输入描述&#xff1a; *程序输…...

网站有几个后台/网站外包一般多少钱啊

更多编程教程请到&#xff1a;菜鸟教程 https://www.piaodoo.com/ 友情链接&#xff1a; 高州阳光论坛https://www.hnthzk.com/人人影视http://www.sfkyty.com/这两个函数主要提供&#xff0c;基于字典的访问局部和全局变量的方式。在理解这两个函数时&#xff0c;首先来理解…...

房产信息网的价格和实际价格/免费seo网站诊断

【死磕Java并发】-----Java内存模型之happens-before 在上篇博客&#xff08;【死磕Java并发】—–深入分析volatile的实现原理&#xff09; 在上篇博客&#xff08;死磕Java并发&#xff1a;深入分析volatile的实现原理&#xff09;LZ提到过由于存在线程本地内存和主内存的原因…...