Я пытаюсь создать приложение, которое висит в трее и показывает окно по требованию. Это окно занимает много памяти, поэтому я хочу освободить всю свою память при закрытии окна.
Я пытаюсь сделать это следующим образом:
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 я указал атрибут удаления при закрытии:
setAttribute(Qt::WA_DeleteOnClose);
При запуске приложение потребляет ~ 5 МБ. После открытия окна приложение потребляет ~ 170 МБ. Но после закрытия окна потребление не меняется. Также, когда я снова открываю и закрываю окно, приложение продолжает потреблять столько же памяти (ничего не меняется).
Можно ли полностью освободить всю память окна?
Я использую Linux.