1、如何让你的程序从光秃秃的原始图标变成好看的图标。准备一个图标文件放到pro文件同级目录下。在pro工程文件中增加:RC_ICONS=xxx.ico,这样就引入ico文件了,重新构建工程。
然后在构造函数中加入代码:setWindowIcon(QIcon(":/hikopsmgrdisktoolguidergui/Resources/setup.ico"));
2、托盘程序开发:
在窗口或者对话框的构造函数中创建托盘相关的东西
QSystemTrayIcon* ptrTrayIcon = new QSystemTrayIcon(this);//托盘
connect(ptrTrayIcon,SIGNAL(activated(QSystemTrayIcon::ActivationReason)),this,SLOT(iconActivated(QSystemTrayIcon::ActivationReason)));
QMenu* ptrMenu = new QMenu(this);//菜单
QAction* ptrAction = new QAction(this);//菜单项
ptrAction->setText("QUIT");
connect(ptrAction,SIGNAL(triggered()),this,SLOT(on_quit()));//绑定选项被单击信号到相应的槽函数
ptrMenu->addAction(ptrAction);
ptrTrayIcon->setContextMenu(ptrMenu);
QIcon icon(":/timer/ooopic_1521598817.png");
ptrTrayIcon->setToolTip("timer is running");
ptrTrayIcon->setIcon(icon);
ptrTrayIcon->show();
m_ptrTray = ptrTrayIcon;//记住托盘对象
主对话框或者窗口重载closeEvent函数,比如如下:
void Dialog::closeEvent(QCloseEvent* event)
{
event->ignore();//忽略关闭事件,窗口就不会退出了
this->hide();//执行当前窗口隐藏动作
m_ptrTray->showMessage("Timer","timer is running");//让托盘显示一个气泡信息
}
//托盘的槽函数
void Dialog::iconActivated(QSystemTrayIcon::ActivationReason reason)
{
switch (reason)
{
case QSystemTrayIcon::Trigger:
showNormal();//被单击就恢复当前窗口
break;
case QSystemTrayIcon::DoubleClick:
break;//被双击没操作
case QSystemTrayIcon::MiddleClick:
break;//被中击没操作
default:
break;
}
}