1

QApplicationQMLでメイン画面を作成するためにサブクラス化したQMLアプリがあります。私が抱えている問題は、閉じるボタンをクリックするとアプリケーションが意図したとおりに閉じることですが、一部のサービスが実行されている場合に閉じるボタンの動作をオーバーライドしたい状況を処理したいと考えています。

運悪くオーバーライドcloseEvent()してみました。誰かがこれを処理できる方法を教えてもらえますか?

更新:これは私が試したコードスニペットです

class SingleApplication : public QApplication {
    Q_OBJECT
public:
    SingleApplication(int &argc, char **argv);

    void closeEvent ( QCloseEvent * event )
    {
        event->ignore();

    }
}

メイン.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;

}
4

1 に答える 1