2013-03-06 2 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()에 'EXIT_FAILURE'을 통과 할 수

:) (

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

참고 종료 : 당신은 Qt는 GUI를 사용하지 않는 경우

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

, QCoreApplication는 동일한 기능을 quit()는 프로그램을 즉시 닫지 않고 원래의 application.exec() 호출을 종료합니다. 일부 플랫폼에서는 경우에 따라 exec()가 반환되지 않으며 다른 경우에는 exec()가 반환합니다.

quit()과 exit()의 차이점은 quit()은 신호와 슬롯을위한 슬롯이고 quit()은 exit (0)을 호출한다는 것입니다.

+1

오류 종료 코드를 제공하려면 QCoreApplication :: exit()을 대신 사용할 수 있습니다. – ypnos

+0

@ypnos : ninja'd 나중에 30 초 정도 내 대답을 편집했을 때. =) –

+2

하지만 잘못 생각한 것 같습니다. quit()는 인수를 사용하지 않고 exit()는 종료 상태 인수를 사용합니다. – ypnos

관련 문제