Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: 0x0001 от Май 04, 2010, 10:14



Название: объекты QMimeData* & QDrag* , как удалить?
Отправлено: 0x0001 от Май 04, 2010, 10:14
delete выдаёт ошибку даже если операция DragDrop не совершалсь (QDrag::exec() не вызывалось)


Название: Re: объекты QMimeData* & QDrag* , как удалить?
Отправлено: GreatSnake от Май 04, 2010, 10:19
Извините, но здесь не клуб экстрасенсов...
Пример кода где?


Название: Re: объекты QMimeData* & QDrag* , как удалить?
Отправлено: BRE от Май 04, 2010, 10:20
delete выдаёт ошибку даже если операция DragDrop не совершалсь (QDrag::exec() не вызывалось)
delete выдает ошибку... ??  ::)
Покажи как создаешь объект и как его удаляешь.


Название: Re: объекты QMimeData* & QDrag* , как удалить?
Отправлено: 0x0001 от Май 04, 2010, 10:31
Код:
pDrag	  = new QDrag(this);
pMimeData = new QMimeData();
pMimeData->setText("abv");
pDrag->setMimeData (pMimeData);
delete pMimeData;
delete pDrag;


Название: Re: объекты QMimeData* & QDrag* , как удалить?
Отправлено: BRE от Май 04, 2010, 10:48
А что, где и когда выдает ошибку?


Название: Re: объекты QMimeData* & QDrag* , как удалить?
Отправлено: crossly от Май 04, 2010, 11:01
я так полагаю ругается на это ??
Код:
delete pDrag;


Название: Re: объекты QMimeData* & QDrag* , как удалить?
Отправлено: 0x0001 от Май 04, 2010, 11:11
Решено, деструктор QDrag сам удаляет Объект QMimeData*, всем спасибо!
Правильно так:
Код:
pDrag	    = new QDrag(this);
pMimeData = new QMimeData();
pMimeData->setText("abv");
pDrag->setMimeData(pMimeData);
QMimeData *pMD[2];//TEST

pMD[0] = pDrag->mimeData();// Запоминаем указатель
j = pDrag->exec (Qt::MoveAction);// RUN !!!
//TEST
QWidget   *pW[3];pW[0]=pDrag->source();pW[1]=pDrag->target();pW[2]= this;
pMD[0] = pDrag->mimeData();// Читаем указатель: УЖЕ НОЛЬ!!!

delete pDrag;// OK!!!!