1.QtSvg初体验
#include <QtSvg>
QSvgWidget w1;
w1.load(QString(":/iconfont-gongyichongwu.svg"));
QSvgRenderer *render=w1.renderer();
qDebug()<<render->defaultSize();
w1.resize(render->defaultSize());
w1.show();
2. 对话框实验。
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相关文章真的好多,是好事欸。
3.系统托盘
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);
先到这里,感谢文章的分享者。