Название: Вопрос по удалению объектов Отправлено: catprog от Май 13, 2009, 22:56 А конкретно по вот этому уроку:
http://doc.crossplatform.ru/qt/4.4.3/tutorials-tutorial-t5.html Все ли объекты QPushButton *quit = new QPushButton(tr("Quit")); QLCDNumber *lcd = new QLCDNumber(2); QSlider *slider = new QSlider(Qt::Horizontal); удаляются в конце программы? или мне их надо удалять? ЗЫ: Я это к тому спрашиваю, что когда запустить их много и закрыть, то размер занятой памяти больше чем до их запуска, а еще когда крутил этот пример у меня вылетал фаервол с ошибкой, правда это наверно тогда я накрутил. Название: Re: Вопрос по удалению объектов Отправлено: Авварон от Май 13, 2009, 23:07 В конце программы удаляются ВСЕ объекты. За это отвечает операционная система - такая уж у нее задача выделять память программам и забирать то, что выделила. Т.н. "утечки памяти" страшны во время работы программы.
А вообще, у данных виджетов нет родителей, посему их нужно удалить, в смысле - до конца программы об их удалении никто не позаботится. В конце, как уже сказано выше, всё очистит ось. Название: Re: Вопрос по удалению объектов Отправлено: lit-uriy от Май 13, 2009, 23:40 2 catprog, тебе ничего удалять не надо, см. код дальше
Код Эти объекты помещаются в компановщик (layout), а он, в свою очередь устанавливается для текущего объекта setLayout(layout), что делает текущий (MyWidget) объект родителем всех объектов находящихся в его компановщике. И при уничтожении MyWidget он удалит всех своих детей Название: Re: Вопрос по удалению объектов Отправлено: catprog от Май 14, 2009, 00:04 Ясно, спасибо.
|