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」と表示されます(ただし、子ウィンドウを閉じると表示されます)。