Qt 实现程序图标和通知栏设置-windows平台
在windows平台下的程序图标设置
一般来说在windows平台下设置程序的显示图标,可以通过在.pro文件中设置RC_ICONS 来实现,代码如图所示。
#设置程序的桌面图标--windows平台
RC_ICONS = MyIcon/main.ico
设置系统托盘
系统托盘位于操作系统任务栏的右下角,托盘具有消息提示,右键菜单等功能。下面通过代码来介绍其基本使用方式。
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
//设置通知栏的图标
QSystemTrayIcon *trayIcon= new QSystemTrayIcon(this);
trayIcon->setIcon(QIcon(":/MyIcon/bussiness-man.svg"));
//设置通知栏的单击事件
connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(stTrayIconActive(QSystemTrayIcon::ActivationReason)));
//设置通知栏的右键菜单
QMenu * menu = new QMenu();
//设置菜单项目
QIcon icon1(":/MyIcon/component.svg");
QAction *actionHide = new QAction(icon1, "Hide", menu);
menu->addAction(actionHide);
trayIcon->setContextMenu(menu);
// 设置Action的响应
connect(actionHide, SIGNAL(triggered()), this, SLOT(stActionHide()));
trayIcon->show();
//托盘的消息提示
trayIcon->showMessage("title", "this is a message", QIcon(":/MyIcon/code.svg"));
}
//槽函数处理点击托盘
void MainWindow::stTrayIconActive(QSystemTrayIcon::ActivationReason acReason)
{
switch (acReason)
{
case QSystemTrayIcon::Trigger:
{
showNormal();
break;
}
default:
;
}
}
//槽函数处理托盘右键菜单的隐藏action
void MainWindow::stActionHide()
{
hide();
}