Russian Qt Forum

Qt => Вопросы новичков => Тема начата: demaker от Октябрь 06, 2011, 10:38



Название: Создание и удаление объектов
Отправлено: demaker от Октябрь 06, 2011, 10:38
Есть код:

Добавляем виджет в таб
void serverForm::addTab(EchoThread* thread,QString str)
{
    miniTab *tab = new miniTab();                                                       // создаем новый ТАБ
    tab->threadTab = thread;                                                              // передаем в threadTab указатель на
                                                                                                           //поток котором происходит обработка команд
    server->m_miniTab.append(tab);
    ui->tabWidget->addTab(tab,str);                                                     //получаем доступ к объекту ServerForm
   
}

Удаляем:
void serverForm::closeTab(int index)
{
    QTabWidget * pageControl;
    miniTab * tab;
    pageControl = qobject_cast<QTabWidget*>(sender());
    tab = (miniTab *)(pageControl->widget(index));
    tab->threadTab->onDisconnect();
    pageControl->removeTab(index);
}

Подскажите при выполнении closeTab объект типа miniTab удаляется из памяти или нет???  :)


Название: Re: Создание и удаление объектов
Отправлено: Vass от Октябрь 06, 2011, 11:45
void QTabWidget::removeTab ( int index )
Removes the tab at position index from this stack of widgets. The page widget itself is not deleted.


Название: Re: Создание и удаление объектов
Отправлено: vvs83 от Октябрь 06, 2011, 11:51
Добавь  tab->deleteLater()

Код:
void serverForm::closeTab(int index)
{
    QTabWidget * pageControl;
    miniTab * tab;
    pageControl = qobject_cast<QTabWidget*>(sender());
    tab = (miniTab *)(pageControl->widget(index));
    tab->threadTab->onDisconnect();
    pageControl->removeTab(index);
    //
    tab->deleteLater();
}


Название: Re: Создание и удаление объектов
Отправлено: demaker от Октябрь 06, 2011, 13:56
Интересно, сча попробую, спасибо :)