2014-07-13 66 views
0

我試圖在主窗口關閉時使用QCloseEvent關閉我的所有對話框並退出應用程序。我已閱讀的文檔,看着很多的例子,這是我想出迄今:qt創建者版本5.3:如果關閉一個主窗口,則退出整個應用程序

在我的.h文件:

protected: 

void mainwindow::closeEvent(QCloseEvent *); 

在我mainwindow.cpp文件:

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

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

} 

當我運行這段代碼,我得到了以下錯誤: mainwindow::closeEvent':本地函數的定義是非法 mainwindow.cpp(13):此行包含一個還沒有被匹配

「{」

回答

0

。在你的.h文件中使用函數聲明一個問題:

void mainwindow::closeEvent(QCloseEvent *); 

它應該是:

void closeEvent(QCloseEvent *); 

還包括QCloseEvent,而不是class QCloseEvent;

+0

我改變了頭文件的建議,我仍然得到以下錯誤mainwindow.cpp:22:錯誤:C2601:'mainwindow :: closeEvent':本地函數定義是非法的 simmotioncontrol.cpp(13):此行包含一個尚未匹配的'{'...錯誤顯示在我的.cpp文件中,而不是.h文件(如果有幫助) – fluxD613

+0

從類cCloseEvent的cpp中刪除前向聲明幷包含'QCloseEvent'標題放入你的cpp或h文件中。 –

+0

我這樣做,還有,現在我得到同樣的錯誤之前(本地函數的定義是非法的),感謝你的幫助 無效simMotionControl ::的closeEvent(QCloseEvent *事件) { 事件 - >接受(); (event-> isAccepted()) if(event-> isAccepted()) { QApplication :: quit(); } return; } – fluxD613

相關問題