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

QT----给程序添加上任务栏托盘图标和退出

让我们的程序拥有任务栏托盘图标,实现程序后台运行,退出等功能

1、关闭程序保持后台

重写关闭事件,忽略点击窗口关闭

void MainWindow::closeEvent(QCloseEvent *event)
{// 隐藏窗口,而不是真正关闭setVisible(false);// 忽略关闭事件,阻止窗口真正关闭event->ignore();
}

2、添加任务栏托盘图标

在这里插入图片描述
创建一个任务链托盘图标,添加上退出和显示的菜单按钮,定义显示的槽函数

// 创建系统托盘图标对象QSystemTrayIcon* pSystemTray = new QSystemTrayIcon(&w);// 判断系统托盘图标是否创建成功if (NULL != pSystemTray) {// 设置托盘图标pSystemTray->setIcon(QIcon(":/res/totle.svg"));// 设置托盘图标的提示信息pSystemTray->setToolTip("别坐着了");// 显示托盘图标pSystemTray->show();}// ---------- 创建托盘菜单 ----------// 创建托盘菜单对象auto* trayMenu = new QMenu(&w);// 创建“显示面板”菜单项auto* showPanelAction = new QAction("显示面板", &w);// 连接菜单项的触发信号与主窗口的showPanel槽函数QObject::connect(showPanelAction,&QAction::triggered,&w,&MainWindow::showPanel);// 将菜单项添加到托盘菜单中trayMenu->addAction(showPanelAction);// 创建“退出”菜单项auto* quitAction = new QAction("退出",&w);// 连接菜单项的触发信号与 QApplication 的 quit() 槽函数QObject::connect(quitAction,&QAction::triggered,&w,&QApplication::quit);// 将菜单项添加到托盘菜单中trayMenu->addAction(quitAction);// 设置托盘图标的上下文菜单pSystemTray->setContextMenu(trayMenu);// 显示托盘图标pSystemTray->show();

完整代码

main。cpp

#include "mainwindow.h"
#include <QApplication>
#include <QSystemTrayIcon>
#include <QMenu>
int main(int argc, char *argv[])
{// 创建 Qt 应用程序对象QApplication a(argc, argv);// 创建主窗口对象MainWindow w;// ---------- 设置任务栏托盘图标 ----------// 创建系统托盘图标对象QSystemTrayIcon* pSystemTray = new QSystemTrayIcon(&w);// 判断系统托盘图标是否创建成功if (NULL != pSystemTray) {// 设置托盘图标pSystemTray->setIcon(QIcon(":/res/totle.svg"));// 设置托盘图标的提示信息pSystemTray->setToolTip("别坐着了");// 显示托盘图标pSystemTray->show();}// ---------- 创建托盘菜单 ----------// 创建托盘菜单对象auto* trayMenu = new QMenu(&w);// 创建“显示面板”菜单项auto* showPanelAction = new QAction("显示面板", &w);// 连接菜单项的触发信号与主窗口的showPanel槽函数QObject::connect(showPanelAction,&QAction::triggered,&w,&MainWindow::showPanel);// 将菜单项添加到托盘菜单中trayMenu->addAction(showPanelAction);// 创建“退出”菜单项auto* quitAction = new QAction("退出",&w);// 连接菜单项的触发信号与 QApplication 的 quit() 槽函数QObject::connect(quitAction,&QAction::triggered,&w,&QApplication::quit);// 将菜单项添加到托盘菜单中trayMenu->addAction(quitAction);// 设置托盘图标的上下文菜单pSystemTray->setContextMenu(trayMenu);// 显示托盘图标pSystemTray->show();// 进入应用程序事件循环return a.exec();
}

mainWindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMessageBox>
#include <QMainWindow>
#include <QCloseEvent>
QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic slots:void showPanel();
public:MainWindow(QWidget *parent = nullptr);~MainWindow();void closeEvent(QCloseEvent *event);private:Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

mainWindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::closeEvent(QCloseEvent *event)
{// 隐藏窗口,而不是真正关闭setVisible(false);// 忽略关闭事件,阻止窗口真正关闭event->ignore();
}void MainWindow::showPanel()
{// 显示窗口this->show();// 将窗口置顶,确保其显示在最前面this->raise();}
纯真丁一郎的博客:有时间就要学习

相关文章:

QT----给程序添加上任务栏托盘图标和退出

让我们的程序拥有任务栏托盘图标&#xff0c;实现程序后台运行&#xff0c;退出等功能 1、关闭程序保持后台 重写关闭事件,忽略点击窗口关闭 void MainWindow::closeEvent(QCloseEvent *event) {// 隐藏窗口&#xff0c;而不是真正关闭setVisible(false);// 忽略关闭事件&am…...

arm地址对齐的总结

static void axi_azx_writeb(u8 value, u8 __iomem *addr) { u32 data; u32 offset; offset (u64)addr & 0x03; // 编译器不允许地址做& 操作时要强转为数据 addr (u8 __iomem *)((u64)addr & 0xFFFFFFFFFFFFFFFC); // __iomem是个64位的地址 u8表示从这个地址…...

就业班 2401--3.13 走进网络

走进网络 长风破浪会有时&#xff0c;直挂云帆济沧海。 1.认识计算机 1.计算机网络是由计算机和通讯构成的&#xff0c;网络研究的是“通信”。 ------1946 世界上第一台计算机 2.终端&#xff1a;只有输入和输出功能&#xff0c;没有计算和处理功能。 3.数据&#xff1a;一串…...

SWIFT介绍和学习(简单入门级别)

SWIFT介绍和学习 SWIFT功能介绍SWIFT快速使用LLM及LLM最佳实践&#xff08;LLM系列文章&#xff09;部署指南 vllm非官方介绍资料 项目地址&#xff1a;https://github.com/modelscope/swift 任何有疑惑的地方&#xff0c;参考项目首页readme寻求答案 SWIFT功能介绍 SWIFT&…...

智慧城市:提升城市治理能力的关键

目录 一、智慧城市的概念及特点 二、智慧城市在提升城市治理能力中的应用实践 1、智慧交通&#xff1a;提高交通治理效率 2、智慧政务&#xff1a;提升政府服务水平 3、智慧环保&#xff1a;加强环境监测与治理 4、智慧安防&#xff1a;提高城市安全水平 三、智慧城市在…...

golang 对接第三方接口 RSA 做签(加密) 验签(解密)

一、过程 1.调用第三方接口前&#xff0c;一般需要按规则将参数按key1value1&key2value2 阿斯克码排序,sign参数不参与加密 2.将排序并连接好的参数字符串通过我方的私钥证书&#xff08;.pem&#xff09;进行加密得到加密串&#xff0c;当然加密得到的是 []byte 字节流&…...

Spring Data访问Elasticsearch----Elasticsearch存储库Repositories

Spring Data访问Elasticsearch----Elasticsearch存储库Repositories 一、自动创建具有相应映射的索引二、存储库方法的注解2.1 Highlight2.2 SourceFilters 三、基于注解的配置四、Spring命名空间Namespace 本文包括Elasticsearch存储库实现的细节。 例1&#xff1a;示例Book实…...

初探 Cocos Creator: 碰撞与物理系统

前言 不知道你刚开始玩碰撞时&#xff0c;会不会遇到始终无法触发碰撞事件&#xff1f;玩物理系统时&#xff0c;自由落体的刚体会穿过 “地面” 刚体等情况&#xff1f;没错我全都遇到过&#xff0c;那么下面我就用红蓝色方块&#xff0c;简单实战一下 Cocos Creator 的碰撞与…...

Vue组件封装方案对比——v-if方式与内置component方式

近期在准备搭建一个通用组件库&#xff0c;而公司现有的各个系统也已有自己的组件库只是没抽离出来&#xff0c;但是目前有两套不同的组件封装方案&#xff0c;所以对于方案的选择比较困惑&#xff0c;于是对两种方式进行了对比&#xff0c;结合网上找到的一些开源组件库进行分…...

python与excel第四节 批量新增、删除工作表

在多个工作簿中批量新增工作表 假设&#xff0c;一个文件夹下面有多个excel文件&#xff0c;需要再每个excel文件中增加一个sheet。 例子&#xff1a; import osimport xlwings as xw file_path D:\\TEST\\python与excelfile_list os.listdir(file_path) sheet_name 产品…...

计算机网络——计算机网络体系结构

计算机网络——计算机网络体系结构 计算机网络体系结构的由来正确认识分层协议与层次划分著名的几个体系结构OSI体系结构TCP/IP体系结构5层体系结构 我们今天来了解一下计算机网络体系结构&#xff1a; 计算机网络体系结构的由来 俗话说&#xff0c;“没有规矩&#xff0c;不…...

近期常用linux命令总结

linux mv [options] source dest : 移动文件 cp [options] source : 复制文件 ps -a: 列出所有进程 ps -ef | grep 进程关键字&#xff1a; 查找指定进程 (-e 显示所有进程 -f 全格式) docker docker images 显示所有镜像 docker pull [IMAGE_NAME] : 拉取某个镜像&#xf…...

变配电站配电监控解决方案--变电站综合自动化系统

变电站综合自动化系统 Acrel-1000变电站综合自动化监控系统是我司根据电力系统自动化及无人值守的要求&#xff0c;总结国内外的研究和生产的先进经验专门研制出的新一代电力监控系统。本系统具有保护、遥测、遥信、遥脉、遥调、遥控功能&#xff0c;可实现无人或少人值守功能…...

【ollama】linux、window系统更改模型存放位置,全网首发2024!

首先是window系统 so easy 直接进入系统环境变量添加就行 其次是linux系统 全靠自己试出来的&#xff0c;去Ollama官网找半天文档不知道在哪&#xff0c;而且linux也没有说&#xff1a;【 https://github.com/ollama/ollama/blob/main/docs/README.md https://github.com/o…...

Spring 被打暴了! vs Javalin vs Solon

测试仅供参考。不同的环境、场景&#xff0c;效果会不同。 测试记录&#xff1a; 项目SpringBoot2SpringBoot3JavalinSolon运行时java 17java 17java 17java 17测试前状态/内存101.1Mb112.9Mb66.1Mb45.6Mb测试后状态/内存996.3Mb326.9Mb457.3Mb369.2Mb测试后状态/并发2万2.6万…...

IDEA中快速配置Git

Git介绍&#xff1a; Git下载 idea中配置Git...

vscode用SSH远程开发c语言

vscode配置远程 这里我使用虚拟机进行展示&#xff0c;首先需要你的虚拟机安装好ssh 没安装好就执行下面的命令安装并开启服务 sudo apt-get install ssh sudo service ssh start ps -e | grep sshvscode安装 remote-ssh扩展 点击左下角的远程连接&#xff0c;我这里已经连接…...

鸿蒙Next 支持数据双向绑定的组件:Checkbox--Search--TextInput

Checkbox $$语法&#xff0c;$$绑定的变量发生变化时&#xff0c;会触发UI的刷新 Entry Component struct MvvmCase { State isMarry:boolean falseStatesearchText:string build() {Grid(){GridItem(){Column(){Text("checkbox 的双向绑定")Checkbox().select($$…...

跨越时空的纽带:探索Facebook如何连接人与人

引言 Facebook作为全球最大的社交媒体平台之一&#xff0c;已经成为了人们日常生活中不可或缺的一部分。它不仅仅是一个社交网络&#xff0c;更是连接人与人、人与世界的纽带。在这篇文章中&#xff0c;我们将深入探讨Facebook如何跨越时空&#xff0c;连接人与人之间的关系&a…...

LabVIEW湍流等离子体束热效率优化

LabVIEW湍流等离子体束热效率优化 利用LabVIEW虚拟仪器技术&#xff0c;对湍流等离子体束的热效率进行了实时监测与优化&#xff0c;提高其在材料处理领域的应用效率和精度。通过双进气湍流等离子体发生器&#xff0c;实现了在不同工作参数下对热效率的实时在线监测&#xff0…...

智能温控实战指南:用FanControl实现极致性能优化与静音平衡

智能温控实战指南&#xff1a;用FanControl实现极致性能优化与静音平衡 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trendi…...

3分钟解密:如何用Sharp-dumpkey找回丢失的微信聊天记录?

3分钟解密&#xff1a;如何用Sharp-dumpkey找回丢失的微信聊天记录&#xff1f; 【免费下载链接】Sharp-dumpkey 基于C#实现的获取微信数据库密钥的小工具 项目地址: https://gitcode.com/gh_mirrors/sh/Sharp-dumpkey 你是否曾因为误删重要微信聊天记录而懊恼&#xff…...

构建高性能HDF5数据可视化架构:ViTables模块化设计指南

构建高性能HDF5数据可视化架构&#xff1a;ViTables模块化设计指南 【免费下载链接】ViTables ViTables, a GUI for PyTables 项目地址: https://gitcode.com/gh_mirrors/vi/ViTables 在科学计算和大数据时代&#xff0c;HDF5格式已成为存储复杂结构化数据的行业标准&am…...

GitHub中文界面终极指南:3分钟快速安装汉化插件

GitHub中文界面终极指南&#xff1a;3分钟快速安装汉化插件 【免费下载链接】github-hans [废弃] {官方中文马上就来了} GitHub 汉化插件&#xff0c;GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-hans 你…...

Java的Switch表达式中的箭头语法与传统case语句在代码风格上的演进

Java语言在长期演进中不断优化语法结构&#xff0c;其中Switch表达式的箭头语法与传统case语句的对比尤为典型。从JDK 12引入预览特性到JDK 14正式落地&#xff0c;箭头语法通过更简洁的形式改变了开发者处理多分支逻辑的方式。这种演进不仅提升了代码可读性&#xff0c;还反映…...

别再用Profiler看AI代码了!奇点大会宣布传统性能分析工具对LLM生成代码失效率高达83.6%

第一章&#xff1a;AI代码性能分析的范式危机与奇点宣告 2026奇点智能技术大会(https://ml-summit.org) 当LLM驱动的自动代码生成在37毫秒内完成CUDA核函数重写&#xff0c;而传统profiler仍卡在符号解析阶段时&#xff0c;性能分析的底层契约已然失效。我们正站在一个认知断…...

10个最佳加密货币 API(2026最新):开发者与量化交易深度指南

&#x1f947; 1. CoinGlass API&#xff08;衍生品 市场结构数据&#xff09;CoinGlass API 提供统一访问全球主流交易所的衍生品、现货、期权、ETF及链上数据&#xff0c;包括 持仓(Open Interest)、资金费率&#xff08;Funding Rate&#xff09; &#xff0c;爆仓&#xf…...

别再手动调格式了!用LaTeX + ctexart搞定中文期刊论文排版(附完整模板)

LaTeX ctexart&#xff1a;科研论文排版的终极效率方案 第一次投稿中文期刊时&#xff0c;我花了整整三天调整Word格式——标题字号不对、参考文献编号错乱、页眉页脚莫名其妙消失。直到实验室师兄扔给我一个.tex文件&#xff1a;"试试这个&#xff0c;点一下编译就行&qu…...

Linux I-O 模型深入理解

Linux I/O 模型深入理解&#xff1a;解锁高性能的关键 在当今高并发的网络环境中&#xff0c;Linux系统的I/O模型是支撑高性能服务的核心机制之一。无论是Web服务器、数据库还是实时通信系统&#xff0c;其底层I/O处理效率直接决定了系统的吞吐量和响应速度。理解Linux I/O模型…...

MATLAB小白也能看懂的电场仿真:手把手教你用代码画三电荷电场线与等势面

MATLAB零基础实战&#xff1a;三电荷系统电场可视化全解析 刚接触电磁场仿真的同学往往会被复杂的公式和编程吓退&#xff0c;但今天我要分享的这套方法&#xff0c;能让没有任何MATLAB基础的小白也能轻松绘制出专业级的电场分布图。我们以经典的正三角形三电荷系统为例&#…...