Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QSystemTrayIcon不断创建新图标_C++_Qt_Qsystemtrayicon - Fatal编程技术网

C++ QSystemTrayIcon不断创建新图标

C++ QSystemTrayIcon不断创建新图标,c++,qt,qsystemtrayicon,C++,Qt,Qsystemtrayicon,我已经创建了一个通知系统,它使用QSystemTrayIcon来提醒用户。我的问题是,每次用户收到通知时,它都会创建一个新图标,这样系统托盘就会充满这些图标 我在Linux机器上开发了这个程序,这里没有出现这个问题。然而,我在Windows7上构建了这个程序,这是程序实际使用的地方,也是问题产生的地方。这使得测试对我来说很棘手,因为我甚至要在Windows上运行这个程序,都要经历相当长的过程。所以我有点希望有人能发现这个问题,并告诉我到底是什么问题,但我感谢任何意见,所以如果你有任何想法,请告诉

我已经创建了一个通知系统,它使用QSystemTrayIcon来提醒用户。我的问题是,每次用户收到通知时,它都会创建一个新图标,这样系统托盘就会充满这些图标

我在Linux机器上开发了这个程序,这里没有出现这个问题。然而,我在Windows7上构建了这个程序,这是程序实际使用的地方,也是问题产生的地方。这使得测试对我来说很棘手,因为我甚至要在Windows上运行这个程序,都要经历相当长的过程。所以我有点希望有人能发现这个问题,并告诉我到底是什么问题,但我感谢任何意见,所以如果你有任何想法,请告诉我

我的代码:

QSystemTrayIcon* notiTray = new QSystemTrayIcon(this);
notiTray->setIcon(QIcon(":/icon.png"));
notiTray->setVisible(true);
notiTray->showMessage("Notifications, "You have new notifications", QSystemTrayIcon::Information, 60000);
notiTray->show();
QApplication::alert(this, 1000);
此代码位于函数中的if语句中,该函数每5秒调用一次以检查新通知

我猜这可能是因为每次出现通知时都会发出一个新的SystemTrayIcon,但我不是100%,我希望有人能证实这一点,以免我在Windows上经历一个可怕的测试过程


谢谢你的帮助

看起来您真的在每个函数调用上创建了一个新图标(new QSystemTrayIcon…notiTray->show()。您可以创建它一次(作为类成员),并在需要时更新它的图像。非常好,谢谢!如果您想将您的评论作为答案,我会将其标记为答案。:)