0

私はしばらくこれに頭をぶつけていたので、ついにあきらめて助けを求めています。

私の問題は、プログラムが終了したときに更新したい settings.ini がプログラムにあることです。私はこれを使用してこれを達成しました:

kegTrackerce.h

protected:
    void closeEvent(QCloseEvent *event);

 void KegTrackerCE::closeEvent(QCloseEvent *event)
    {
        saveSettings();
        event->accept();
    }

これにより、設定が保存され、ファイルを通過して終了するとプログラムが閉じますが、右上隅の「X」をクリックすると、ウィンドウは消えますが、プログラムは終了しません(終了コードなし)。アプリケーション exe を再度開くと、プログラムが読み込まれる代わりに即座に開きます。

これは、次のコードを含めた場合にのみ発生することを確認しました

KegTrackerCE::KegTrackerCE(QWidget *parent, Qt::WFlags flags)
    : QMainWindow(parent, flags)
{
//A heap of other stuff here
KegTrackerCE::showFullScreen();
}

showfullscreen をコメント アウトすると、「x」が正常に機能し、設定ファイルが適切に更新され、プログラムがメモリからクリアされ、終了コード 0 が返されます。

画面スペースはそのままでは十分に制限されているため、アプリをフルスクリーンではなく最大化したままにしたくありません。上部に冗長なバーを配置しても意味がありません。

助けてくれてありがとう、私はたくさんのものを試しました、私は含めました:

qApp->setQuitOnLastWindowClosed(true);

一緒に

void KegTrackerCE::lastWindowClosed (){
QApplication::quit();
}

しかし、それは何もしません。

closeEvent()物事が全画面表示されているときに x が押されたときに、 がまったく呼び出されないこと はかなり確信しています。

とにかく、助けてください!! あなたの助けは非常に高く評価されます!!

みんなありがとう

4

2 に答える 2

1

ちょっと調べてみるとこんなのがありました。

Windows Mobile の閉じない閉じるボタン (Qt で開発)

それは解決策ですが、修正に満足しています。基本的に、win ce は、ボタンが押されたときにデフォルトでアプリケーションを実行し続けます。スタイルに少し設定するという話がありましたが、単に x を削除するのが最も簡単で効果的なアプローチだと思います

于 2013-02-15T00:19:23.417 に答える