Qt 笔记 — 设置应用程序&窗口图标&系统托盘图标

1、设置应用程序图标

可执行文件**.exe**的图标

在**.pro**工程文件中添加 RC_ICONS = “xxxxx.ico” 即可,如:

RC_ICONS = "file_logo.ico"

如上所示这样做,图标文件需要和**.pro**工程文件在同一目录下


2、设置窗口左上角图标

从资源文件中调用下面API设置窗口图标,在窗口构造函数中加入如下代码

 this->setWindowIcon(QIcon(":/res/res/file_logo.png"));

3、设置系统托盘图标

相关类:

#include <QSystemTrayIcon>    //任务托盘类
#include <QMenu>
void MainWindow::Creat_Menu()
{
    
    
    QSystemTrayIcon *fileIcon = new QSystemTrayIcon(this);

    QMenu *fileMenu = new QMenu((QWidget *)QApplication::desktop());
    QAction *restoreWinAction = new QAction(this);
    QAction *quitAction       = new QAction(this);

    restoreWinAction->setText("打开窗口");
    quitAction->setText("退出");
    fileMenu->addAction(restoreWinAction);     //给菜单添加动作选项
    fileMenu->addSeparator();
    fileMenu->addAction(quitAction);

    connect(restoreWinAction, &QAction::triggered, this, &MainWindow::show);
    connect(quitAction, &QAction::triggered, this, &MainWindow::close);

    if (!QSystemTrayIcon::isSystemTrayAvailable())     //判断系统是否支持托盘图标
    {
    
    
        return;
    }

    fileIcon->setToolTip("文件重复检测工具");             //设置托盘图标提示
    fileIcon->setIcon(QIcon(":/res/res/filelogo.ico"));    //设置图标
    fileIcon->setContextMenu(fileMenu);                   //给系统托盘添加右键菜单
    fileIcon->show();                                     //显示托盘
}

//在widget changetEvent事件中判断是否最小化,是则隐藏当前窗口
void QWidget::changeEvent(QEvent *e)
{
    
    
    if (e->type() == QEvent::WindowStateChange && this->isMinimized())
    {
    
    
        this->hide();
    }
}

猜你喜欢

转载自blog.csdn.net/qq_36413982/article/details/108906138