Qt创建托盘————附详细代码

1 实现

1.1 .h文件中,声明变量和方法

  //窗口任务栏属性QSystemTrayIcon *trayIcon;QMenu *trayMenu ;
void iconActivated(QSystemTrayIcon::ActivationReason);
 QAction *trayShowMainAction;//托盘显示窗口信号发生体 QAction *trayExitAppAction;//托盘显示窗口信号发生体 void on_showMainAction();//托盘槽 void on_exitAppAction();//托盘槽

1.2 初始化托盘:

void initTray(){    //创建托盘    this->initTrayIcon();    connect(trayIcon, &QSystemTrayIcon::activated,                this, &UIMainWindows::iconActivated);    //托盘事件    //显示界面    connect(trayShowMainAction, &QAction::triggered,            this, &UIMainWindows::showNormal);     //退出程序            connect(trayExitAppAction, &QAction::triggered,             this, &UIMainWindows::on_exitAppAction);    //this->setWindowState((this->windowState() & ~Qt::WindowMinimized) | Qt::WindowActive);    //设置窗口样式    this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowSystemMenuHint | Qt::WindowMinimizeButtonHint);}

1.3 创建托盘

void initTrayIcon(){    //判断系统是否支持托盘图标显示    if(!QSystemTrayIcon::isSystemTrayAvailable())     {            //qDebug() <<"test";            return;      }    //实例化托盘图标控件    trayIcon = new QSystemTrayIcon(this);    trayIcon->setIcon(QIcon(":/image/main_menu.png"));  //设置托盘图标显示    trayIcon->setToolTip("Calculator"); //显示提示信息
    //创建托盘菜单   trayShowMainAction = new QAction(tr("显示主界面"),this);   trayExitAppAction = new QAction(tr("退出"),this);    trayMenu = new QMenu(this);    trayMenu ->addAction(trayShowMainAction);//添加事件    trayMenu ->addSeparator();//添加分割线    trayMenu ->addAction(trayExitAppAction);    trayIcon->setContextMenu(trayMenu );//托盘添加菜单
}

1.4 点击事件

void iconActivated(QSystemTrayIcon::ActivationReason reason){        switch (reason)        {        case QSystemTrayIcon::Trigger:            //trayIcon->showMessage("title","你单击了"); //后面两个默认参数            trayIcon->showMessage(tr("游戏平台"),                                      tr("欢迎使用此程序!"),                                      QSystemTrayIcon::Information,                                      700);            break;        case QSystemTrayIcon::DoubleClick:            //trayIcon->showMessage("title","你双击了");            //setVisible(true);            this->show();            break;//        case QSystemTrayIcon::MiddleClick://鼠标中间滚轮//            trayIcon->showMessage("title","你中键了");//            break;        default:            break;        }}
 
void on_exitAppAction(){    exit(0);}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蝈蝈(GuoGuo)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值