我正在尝试创建一个挂在托盘中并按需显示窗口的应用程序。该窗口占用大量内存,因此我想在关闭窗口时释放所有内存。
我正尝试通过以下方式做到这一点:
QApplication a(argc, argv);
auto trayMenu = new QMenu;
trayMenu->addAction(QIcon::fromTheme("folder"), "Open main window", [] {
auto mainWindow = new MainWindow;
mainWindow->show();
});
QSystemTrayIcon trayIcon(QIcon::fromTheme("folder"));
trayIcon.setContextMenu(trayMenu);
trayIcon.show();
return QApplication::exec();
在MainWindow构造函数中,我在关闭时指定了delete属性:
setAttribute(Qt::WA_DeleteOnClose);
开始时,应用程序消耗约5 MB。打开窗口后,该应用程序将消耗约170 MB的内存。但是,关闭窗口后,消耗量不会改变。同样,当我重新打开和关闭窗口时,应用程序继续消耗尽可能多的内存(没有任何变化)。 是否可以完全释放窗口的所有内存? 我正在使用Linux。