私はメインウィンドウのアプリケーションを持っています。ショートカットが起動されるとダイアログがポップアップして情報を表示し、このダイアログで設定を行い、メインウィンドウ、メインウィンドウはいくつかの追加作業を行います。擬似コードは次のようになります。Qtはboost :: shared_ptrの信号とスロットを接続します
void MainWindow::actionConfigure_triggered()
{
configureDialog = boost::shared_ptr<configure>(new configure(this));
configureDialog->show();
connect(configureDialog.get(), SIGNAL(reload()), this, SLOT(clean_reload()));
}
この機能を何回かトリガーすると、セグメント化エラーが発生します。 boost :: checked_delete関数を実行すると、SIGSEGVが受け取った実行をトレースするためにデバッガを使用します。
ご協力いただきますようお願い申し上げます。前もって感謝します。 設定ダイアログを動的に作成して削除したい、またはこれを実装する他のより良い方法がありますか?
私はスマートなポインタを使う必要はないと思います。設定ダイアログが閉じられたら、デストラクタを呼び出す必要があります。この時点で動的に割り当てられたメモリを解放する必要があります。何度も何度も機能するのですか? – nils
ダイアログボックスは、setAttribute(Qt :: WA_DeleteOnClose)を設定しない限り、閉じても自分自身を削除しません。 –
ありがとうございます。 – nils