2014-07-13 3 views
0

QCloseEvent을 사용하여 모든 대화 상자를 닫고 기본 창이 닫힐 때 응용 프로그램을 종료하려고합니다. 나는 설명서를 읽고 많은 예제를 보면서 이것은 내가 지금까지 가지고 올 한 것입니다있다 :qt 제작자 버전 5.3 : 하나의 메인 윈도우가 닫힌 경우 전체 응용 프로그램 종료

을 내 .H 파일에서 내 mainwindow.cpp 파일에서

protected: 

void mainwindow::closeEvent(QCloseEvent *); 

:

class QCloseEvent; 
void mainwindow::closeEvent(QCloseEvent *event) 
{ 
    event->accept(); 

    if (event->isAccepted()) 
    { 
     QApplication::quit(); 
    } 

} 

이 코드를 실행할 때 다음과 같은 오류를 얻을 : mainwindow::closeEvent' : 지역 함수 정의는 불법 mainwindow.cpp (13)이다 :이 줄이 포함 된 '{'아직

일치되지 않은

void mainwindow::closeEvent(QCloseEvent *); 

그것은해야한다 :

답변

0

당신의 .H 파일에서 함수 선언에 문제가 있습니다

void closeEvent(QCloseEvent *); 

또한 QCloseEvent 대신 class QCloseEvent; 있습니다.

+0

제안 된대로 헤더 파일을 변경하고 여전히 mainwindow.cpp : 22 : 오류 : C2601 : 'mainwindow :: closeEvent': 로컬 함수 정의가 올바르지 않습니다. simmotioncontrol.cpp (13) :이 줄은 다음과 같습니다. 아직 일치하지 않은 '{'이 ... 내 .cpp 파일에 오류가 나타나고 .h 파일이 도움이된다면 오류가 표시됩니다. – fluxD613

+0

'class QCloseEvent; 인 cpp에서 전달 선언을 제거하고 'QCloseEvent' 헤더를 cpp 또는 h 파일에 저장하십시오. 나뿐만 아니라 지금은 이전과 같은 오류를 얻을했다 –

+0

는 (로컬 함수 정의가 불법) 당신의 도움 무효 simMotionControl :: closeEvent (QCloseEvent * 이벤트) { 이벤트 -> (동의)에 감사드립니다; (이벤트 -> isAccepted()) } return; } – fluxD613