2013-03-06 77 views
2

我不确定这是怎么回事,但我认为这是当我希望应用程序使用方法突然关闭(例如,当用户选择在应用程序将关闭SSL错误后选择不继续) exit(EXIT_FAILURE);Qt多个系统托盘图标

我注意到有多个系统托盘图标,每次运行我的应用程序时都会有一个图标。

enter image description here

请问exit(EXIT_FAILURE);原因呢?无论如何要妥善处理系统托盘对象?

感谢

回答

2

如果你想退出,它可能是最好问一下Qt的做它,所以它可以清理后本身。

从代码中的任何位置调用qApp-> quit()或QApplication :: quit()。 (qApp是全球的) 您也可以使用exit()。

#include <QApplication>访问。

你可以通过 'EXIT_FAILURE' 到exit():如果你不使用Qt的GUI

#include <QApplication> 
QApplication::exit(EXIT_FAILURE) 

,QCoreApplication具有相同的功能:

#include <QCoreApplication> 
QCoreApplication::exit(EXIT_FAILURE) 

注意退出()和quit()不要直接关闭你的程序,而是结束你对application.exec()的原始调用。在某些平台上,在某些情况下,exec()不会返回,而在其他平台上则会返回。 ()和exit()之间的区别在于,quit()是信号和插槽的插槽,而quit()只是调用exit(0)。

+1

如果您想提供失败退出代码,则可以使用QCoreApplication :: exit()。 – ypnos 2013-03-06 18:40:25

+0

@ypnos:当我编辑我的答案时,忍受30秒左右的时间。 =) – 2013-03-06 18:42:57

+2

但你错了。 quit()不接受任何参数,exit()接受退出状态参数。 – ypnos 2013-03-06 22:02:13