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

Qt在任务栏图标和系统托盘图标上显示红点

在任务栏图标上显示红点

关键类:QWinTaskbarButton

#include <QWinTaskbarButton>QPointer<QWinTaskbarButton> taskbarBtn = nullptr;
if (!taskbarBtn) {taskbarBtn = new QWinTaskbarButton(window);taskbarBtn->setWindow(window->windowHandle());
}if (checked) {QPixmap pixmap(10, 10);pixmap.fill(Qt::transparent);QPainter painter(&pixmap);painter.setRenderHint(QPainter::Antialiasing);painter.setPen(Qt::NoPen); // 不绘制边框painter.setBrush(Qt::red);painter.drawEllipse(2, 2, 8, 8);QIcon icon(pixmap);taskbarBtn->setOverlayIcon(icon);
}
else {taskbarBtn->clearOverlayIcon();
}

UI可以参考OBS录制开启。checked为true显示红点,false不显示红点。
使用QWinTaskbarButton::setOverlayIcon设置覆盖图标

在系统托盘上显示红点

关键类:QSystemTrayIcon

    if (visible) {QPixmap pixmap;if (!pixmap.load(":/res/logo.png")) {qDebug() << "Failed to load icon from resource file.";return;}pixmap = pixmap.scaled(16, 16);QPainter painter(&pixmap);painter.setRenderHint(QPainter::Antialiasing);painter.setPen(Qt::NoPen); // 不绘制边框painter.setBrush(Qt::red);painter.drawEllipse(0, 8, 8, 8);QIcon icon(pixmap);setIcon(icon);}else {setIcon(QIcon(":/res/logo.png"));}

先将logo加载到QPixmap,再在QPixmap上用QPainter绘制红点。最后调用QSystemTrayIcon::setIcon
在这里插入图片描述

http://www.lryc.cn/news/342957.html

相关文章:

  • springboot拦载器
  • 知道创宇安全服务实习
  • SGP.22-V.3.1-安全1
  • STM32单片机ADC功能详解
  • 47.Redis学习笔记
  • 数控六面钻适用场景-不止家具制造
  • 【力扣】86. 分隔链表
  • 海云安受邀参加诸子云 4.27南京「金融互联网」私董会
  • docker操作使用注意事项
  • Leetcode—163. 缺失的区间【简单】Plus
  • Ansible自动化运维工具 - playbook 剧本编写
  • Web前端一套全部清晰 ⑥ day4 CSS.2 复合选择器、CSS特性、背景属性、标签的显示模式
  • Linux 认识与学习Bash——3
  • 匠心精神与创新力量:构筑网络安全的新防线
  • 接口信息解析
  • scikit-learn实现单因子线性回归模型
  • 【笔记】Anaconda命令提示符(Anaconda Prompt)操作
  • Unity射击游戏开发教程:(12)使用后处理
  • python:机器学习特征优选
  • 花一个月时间为 vue3 重制了 vue-styled-components
  • API接口调用|京东API接口|淘宝API接口
  • pgsql和mysql比较
  • 【太赫兹偏振保持亚波长波导链路功率预算分析】
  • json-server的安装和使用
  • Unity射击游戏开发教程:(10)创建主界面
  • Microsoft 365 for Mac v16.84 office365全套办公软件
  • 交易复盘-20240507
  • 面试题: malloc与new的区别
  • 欧鹏RHCE 第五次作业
  • 数仓分层——ODS、DW、ADS