我有一個QML應用程序,其中我已經subclassed QApplication
用QML創建我的主屏幕。我遇到的問題是單擊關閉按鈕應用程序按預期關閉,但我想處理的情況下,如果某些服務正在運行,我想重寫關閉按鈕行爲。防止QApplication應用程序從關閉,如果服務正在運行
我試圖重寫closeEvent()
沒有任何運氣。任何人都可以通過一些方式指出我可以處理這個問題嗎
UPDATE:這是代碼片段我試圖
class SingleApplication : public QApplication {
Q_OBJECT
public:
SingleApplication(int &argc, char **argv);
void closeEvent (QCloseEvent * event)
{
event->ignore();
}
}
Main.cpp的
#include "view.h"
#include <QDebug>
#include <QDesktopWidget>
#include "SingleApplication.h"
int main(int argc, char *argv[])
{
SingleApplication app(argc, argv);
if(!app.isRunning()) {
app.processEvents();
View view(QUrl("qrc:/qml/main.qml"));
#ifdef Q_OS_LINUX
view.setFlags(Qt::WindowMinimizeButtonHint|Qt::WindowCloseButtonHint);
#endif
view.setMaximumSize(QSize(1280,700));
view.setMinimumSize(QSize(1280,700));
// Centering the App to the middle of the screen
int width = view.frameGeometry().width();
int height = view.frameGeometry().height();
QDesktopWidget wid;
int screenWidth = wid.screen()->width();
int screenHeight = wid.screen()->height();
view.setGeometry((screenWidth/2)-(width/2),(screenHeight/2)-(height/2),width,height);
view.show();
return app.exec();
}
return 0;
}
一些相應的代碼可以幫助你得到正確的答案。你已經試過了什麼?什麼是錯誤? – folibis
嘗試使用['QApplication :: setQuitOnLastWindowClosed()'](http://doc.qt.io/qt-4.8/qapplication.html#quitOnLastWindowClosed-prop) –
您沒有粘貼具有名爲' closingDown()'。請發佈[簡短,獨立,正確(可編譯),示例](http://sscce.org/)。 – Mitch