| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [Qt] Удаление пунктов закрытого меню (текучесть) |
| Автор: EGD 3.3.2012, 12:09 | ||||
| Добрый день, возникла проблема с потреблением памяти и меню заполняющимся динамически в зависимости от условий. При вызове меню размер выделенной для приложения памяти растет, что очевидно, но при закрытии меню память не высвобождается, что странно. Как привильно создавать/удалять меню?
FDictMenu указать на QMenu, создается в конструкторе класса (является подменю и на протяжении существования экземпляра класса неизменно). Функция suggestMenu(); возвращает указатель QMenu на подменю - всегда разное.
Используется Qt 4.8.0 (Linux). |
| Автор: borisbn 3.3.2012, 12:44 | ||
| в конце функции showContextMenu нужно делать delete menu; см. пример в http://qt-project.org/doc/qt-4.8/qlineedit.html#contextMenuEvent в функции suggestMenu наверное имелось в виду
? |
| Автор: EGD 3.3.2012, 13:13 | ||||||
хм... а почему тогда не помогает флаг QMenu::setAttribute(Qt::WA_DeleteOnClose,true);? по идее должен быть такой же эффект.
да, конечно же. p.S. просьба к модераторам плюсануть доброго человека. |
| Автор: EGD 3.3.2012, 13:54 | ||||||
я думал при закрытии (когда пропадает) popup меню, нет? |