Qt添加系统托盘

此方法是在主窗口为QMainWindow的窗口中实现的方法,至于其它顶层的窗口没有经过测试。

实现的功能有创建一个托盘图标,在点击主窗口的关闭按钮后会弹出一个对话框,询问用户是最小化到系统托盘还是退出程序。如果用户选择最小化到系统托盘后并点击确定按钮,程序会最小化到系统托盘中。如果用户选择退出程序,程序会退出。如果用户点击的是对话框的取消按钮,不管用户之前是选择的最小化到系统托盘还是退出程序,点击取消按钮后除了关闭对话框外不做任何处理。同时在系统托盘中单双击系统托盘中的图标后会重新显示主窗口,点击右键会弹出一个右键菜单,菜单中有隐藏、最大化、正常、退出程序等选项。

为程序添加系统托盘需要用到QSystemTrayIcon类。可通过setIcon()函数设置按钮图标;通过setContextMenu()函数添加图标的右键菜单栏;setToolTip()函数可设置图标的提示信息(就是鼠标进入按钮区后出现在图标右上方的提示信息);调用show()函数可显示图标,注意,如果不调用show()函数的话是看不到图标的。

不过要想实现点击窗口关闭按钮后最小化到系统托盘中的话还需要重新实现MainWindow窗口的closeEvent(QCloseEvent *event)事件,并在main.cpp中添加如下一行代码:此处等待替换(此行代码的作用是在关闭最后一个可视窗口后不退出程序,这么做的代价就是以后要退出程序需要使用qApp.quit()函数,而并非MainWindow窗口的close()函数)。

下面的addSystemTray ()函数创建了一个托盘图标,并对托盘图标中的图片,右键菜单,提示信息进行了设置:

/*添加系统托盘*/
void MainWindow::addSystemTray()
{
    this->createTrayIconMenu ();
    systemTrayIcon = new QSystemTrayIcon(this);
    systemTrayIcon->setContextMenu(systemTrayMenu);
    systemTrayIcon->setToolTip(SYSTEM_NAME);
    QIcon systemIcon(":/Icon/systemIcon.png");
    systemTr
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值