【发布时间】:2021-06-22 17:51:05
【问题描述】:
我正在使用 Qt6 和 C++ 创建一个桌面应用程序,并且我有我原来的 MainWindow 类。使用 Qt Creator 我为新的 SummaryClass (QMainWindow) 生成了 ui,h,cpp。 我希望能够单击位于 MainWindow 中的按钮,以便我可以打开 SummaryWindow。
void MainWindow::openSummary()
{
SummaryWindow window;
window.show();
}
我知道在函数结束时窗口实例超出范围并被销毁。 (由 Qt Creator 生成的析构函数被自动调用)因为窗口出现然后很快消失。 如果我只是执行
SummaryWindow window = new SummaryWindow();
window.show();
窗口会成功显示,但随后会造成内存泄漏。
对于我想要实现的目标,是否有变通方法/解决方案?
为了清楚起见,我想打开窗口并让两个窗口都可见。
【问题讨论】:
-
只要让
SummaryWindow window;成为MainWindow的非静态类成员,不是吗? -
@G.M.是的,这就是解决方案,非常感谢。
标签: c++ qt memory-leaks qt5 desktop-application