【发布时间】:2013-03-06 18:13:15
【问题描述】:
我不确定这是怎么回事,但我认为这是我希望应用程序突然关闭的时候(例如,当用户在 SSL 错误后选择不继续时,应用程序将关闭)使用方法 exit(EXIT_FAILURE);。
我注意到有多个系统托盘图标,每次运行我的应用程序时都有一个。
exit(EXIT_FAILURE); 会导致这种情况吗?有没有办法正确处理系统托盘对象?
谢谢
【问题讨论】:
标签: c++ qt qtwebkit system-tray
我不确定这是怎么回事,但我认为这是我希望应用程序突然关闭的时候(例如,当用户在 SSL 错误后选择不继续时,应用程序将关闭)使用方法 exit(EXIT_FAILURE);。
我注意到有多个系统托盘图标,每次运行我的应用程序时都有一个。
exit(EXIT_FAILURE); 会导致这种情况吗?有没有办法正确处理系统托盘对象?
谢谢
【问题讨论】:
标签: c++ qt qtwebkit system-tray
如果你想退出,最好让Qt对它做些什么,这样它就可以自己清理了。
从代码中的任何位置调用 qApp->quit() 或 QApplication::quit()。 (qApp 是全球性的) 你也可以使用exit()。
#include <QApplication> 访问。
您可以将“EXIT_FAILURE”传递给exit():
#include <QApplication>
QApplication::exit(EXIT_FAILURE)
如果您不使用 Qt GUI,QCoreApplication 具有相同的功能:
#include <QCoreApplication>
QCoreApplication::exit(EXIT_FAILURE)
请注意,exit() 和 quit() 不会立即关闭您的程序,而是结束您对 application.exec() 的原始调用。在某些平台上,在某些情况下,exec() 不会返回,而在其他平台上会。
quit() 和exit() 的区别在于,quit() 是信号和槽的槽,而quit() 只是调用exit(0)。
【讨论】: