Qt开发:程序图标和托盘

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;

       }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值