Webにあるチュートリアルに基づいて、単純なMDI親子アプリケーションを作成しました。QMainWindowには、子ウィンドウへのポインターがあります。次のコードは、適切な接続機能にバンドルされています。
main_window.hファイル
パブリックスロット:
void openChildWindow();
プライベート:
Ui :: MainWindow * ui;
ChildWindow * childWindow;
main_window.cppファイル
void MainWindow :: openChildWindow()
{{
childWindow = new ChildWindow(ui-> mdiArea); //ウィンドウをどこかで破棄してください
childWindow-> resize(400、320);
childWindow-> show();
}
私の質問は、mdiの子ウィンドウをmdiの親の中に保存するための最良の方法は何ですか?子ウィンドウへのポインタのリストである必要がありますか?
現在の実装では、同時に多くのmdi子を作成して閉じることができますが、閉じた後に日陰を残すことがあります(たとえば、子ウィンドウを最小化および最大化する場合)。どこかでmdiの子デストラクタを呼び出すのを忘れたのでしょうか?現在はそれだけです:
ChildWindow ::〜ChildWindow()
{{
UIを削除します。
std :: cout << "私は死んでいる!" << std :: endl;
}
しかし、私はそれを手動でどこにも呼びません。Qtプログラム全体が終了すると、Qt Creatorコンソールに「I'mdead」と表示されます(ただし、子ウィンドウを閉じると表示されます)。