Как выделить память для окна, а затем очистить его при закрытии? - PullRequest
0 голосов
/ 17 января 2019

Я пытаюсь создать приложение, которое висит в трее и показывает окно по требованию. Это окно занимает много памяти, поэтому я хочу освободить всю свою память при закрытии окна.

Я пытаюсь сделать это следующим образом:

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...