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
在这里插入图片描述

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-01 09:16:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-01 09:16:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-01 09:16:01       82 阅读
  4. Python语言-面向对象

    2024-05-01 09:16:01       91 阅读

热门阅读

  1. CAPM模型步骤

    2024-05-01 09:16:01       32 阅读
  2. K8s: Kubernetes扩展之自定义资源

    2024-05-01 09:16:01       29 阅读
  3. python烟花代码

    2024-05-01 09:16:01       27 阅读
  4. Matlab : unique函数的用法

    2024-05-01 09:16:01       34 阅读
  5. selenium截屏代码

    2024-05-01 09:16:01       31 阅读
  6. selenium-webdriver 设置宽高 node

    2024-05-01 09:16:01       29 阅读
  7. selenium 4.20.0 访问外网问题

    2024-05-01 09:16:01       29 阅读
  8. Golang 设计模式(创建型)

    2024-05-01 09:16:01       26 阅读
  9. 如何使用dlib库进行人脸检测

    2024-05-01 09:16:01       29 阅读
  10. P1025 [NOIP2001 提高组] 数的划分

    2024-05-01 09:16:01       35 阅读