#include
- QSvgWidget w1;
- w1.load(QString(":/iconfont-gongyichongwu.svg"));
- QSvgRenderer *render=w1.renderer();
- qDebug()<
defaultSize(); - w1.resize(render->defaultSize());
- w1.show();

QT之隐藏任务栏图标_qt隐藏任务栏图标_雨田哥的博客-CSDN博客
- QDialog w2;
- w2.show();
这时候任务栏有图标。

- int main(int argc, char *argv[])
- {
- QApplication a(argc, argv);
- QWidget *parent =new QWidget;
- QDialog *w=new QDialog(parent);
- w->resize(200,200);
- w->show();
- int ret=a.exec();
- delete parent;
- return ret;
- }
而这样写任务栏就没有图标了。此时Dialog是Widget的子窗口,而Widget没有显示,从而产生了这样的效果。

突然感觉Qt相关文章真的好多,是好事欸。
Qt 实现系统托盘,托盘菜单,托盘消息_qt如何发送托盘通知_GreenArrowMan的博客-CSDN博客
- QSystemTrayIcon * m_systemTray = new QSystemTrayIcon(this);
- m_systemTray->setIcon(QIcon(":/iconfont-gongyichongwu.svg"));
- m_systemTray->setToolTip("SystemTray Program");
- m_systemTray->show();
(1)QIcon支持svg文件格式。
(2) 能明白哪个函数有什么功能,该怎么用,可以实现什么效果,就超棒了。

(3)可以对图标进行左击,右击,中击,双击,会发出activated信号,对应各种原因,在槽函数中进行你自己的个性化操作。
connect(m_systemTray, &QSystemTrayIcon::activated, this, &svgwidget::activeTray);//点击托盘,执行相应的动作
- void svgwidget::activeTray(QSystemTrayIcon::ActivationReason reason)
- {
- switch (reason) {
- case QSystemTrayIcon::Context:
- qDebug()<<"Context";//右键
- break;
- case QSystemTrayIcon::DoubleClick:
- qDebug()<<"DoubleClick";//第二次左键点击
- break;
- case QSystemTrayIcon::Trigger:
- qDebug()<<"Trigger";//第一次左键点击或仅左键点击一次
- break;
- case QSystemTrayIcon::MiddleClick:
- qDebug()<<"MiddleClick";//滚轮按下
- break;
- case QSystemTrayIcon::Unknown:
- qDebug()<<"Unknown";
- break;
- default:
- break;
- }
- }
(4)创建菜单
- QMenu * menu = new QMenu(this);
- menu->addAction("show window");
- menu->addAction("show Message");
(5)指定右键菜单
m_systemTray->setContextMenu(menu);

先到这里,感谢文章的分享者。