おそらくあなたが持っているということです私が得たもの スコープの外に起こっているオブジェクト。
何かが削除された、またはアクセスできなくなり、その後、あなたがこれを取得します、あなたがそれにアクセスしよう。
2つの処置:
Qtでオブジェクトを作成する場合は、そのオブジェクトをヒープに配置し、それをオブジェクトツリーで親にします。例えば
:
QLabel * label = new QLabel(); // put it on the heap using new
ui->centralWidget()->layout()->addWidget(label);
あなたのラベルがオブジェクトツリーになりました。ラベルの親はLayoutオブジェクトです。その親はセントラルウィジェットです。その親はUIです。
ウィンドウが閉じられると、自動的にすべての子をクリーンアップします。つまり、それぞれのウィンドウで削除を呼び出す必要はありません。
例ではヒープにないものが表示されることがありますが、他の場所では参照されていないダイアログボックスのような短命のアイテムでない限り、通常は大きな例ではうまく機能しません。
またcloseEvent()では、dbへのアクセスをクリーンアップする必要があります。データベースの例を見て、データベースへのハンドルを閉じるためのコード行を見つけてください。
クリーンアップ中で、実行時に使用できない可能性がある場合は、チェックしてください。
if(label)
label->setText("I am closing now");
また、ポインタを削除または閉じた後にポインタをゼロに設定したい場合があります。
希望に役立ちます。
スタックフレームを調べようとします。 gdbで – Trevir
ここにコードを投稿できますか? – PRIME
このアセンブリを見るだけで何が問題なのかわからない場合は、コンピュータを捨ててプログラミングをやめてください。D – dtech