1

現在、次の方法を使用して新しいフォームを開いています

void MyForm::MySlot()
{
    //This method loads up te form for historical feeds
    NewForm *w = new NewForm(); 
    w->show();
}

この方法は、新しいフォームを開くのに受け入れられますか? wまた、フォームが閉じたときにポインターを削除するタイミングをどのように知ることができますか?

私が考えているのは、フォームが閉じられたときにトリガーされるシグナルを設定することです。そのシグナルのスロットは w を削除します。これは受け入れられる方法ですか、それともこれを達成するためのより速い方法はありますか?

4

2 に答える 2

0

Qt::WA_DeleteOnClose 属性を設定します。

w->setAttribute(Qt::WA_DeleteOnClose);

このようにして、Qt のメモリ管理システムがそれを処理します。

于 2013-05-02T23:04:06.990 に答える
0

フォームを閉じて後で使用する場合は、新しいフォームの親をメイン フォームに設定します。そうすれば、メイン フォームが削除されると、Qt は新しいフォームの削除も処理します。

于 2013-05-03T08:40:06.760 に答える