Russian Qt Forum
Сентябрь 30, 2024, 14:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: объекты QMimeData* & QDrag* , как удалить?  (Прочитано 5789 раз)
0x0001
Гость
« : Май 04, 2010, 10:14 »

delete выдаёт ошибку даже если операция DragDrop не совершалсь (QDrag::exec() не вызывалось)
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Май 04, 2010, 10:19 »

Извините, но здесь не клуб экстрасенсов...
Пример кода где?
Записан

Qt 5.11/4.8.7 (X11/Win)
BRE
Гость
« Ответ #2 : Май 04, 2010, 10:20 »

delete выдаёт ошибку даже если операция DragDrop не совершалсь (QDrag::exec() не вызывалось)
delete выдает ошибку... ??  Строит глазки
Покажи как создаешь объект и как его удаляешь.
Записан
0x0001
Гость
« Ответ #3 : Май 04, 2010, 10:31 »

Код:
pDrag	  = new QDrag(this);
pMimeData = new QMimeData();
pMimeData->setText("abv");
pDrag->setMimeData (pMimeData);
delete pMimeData;
delete pDrag;
Записан
BRE
Гость
« Ответ #4 : Май 04, 2010, 10:48 »

А что, где и когда выдает ошибку?
Записан
crossly
Гость
« Ответ #5 : Май 04, 2010, 11:01 »

я так полагаю ругается на это ??
Код:
delete pDrag;
Записан
0x0001
Гость
« Ответ #6 : Май 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!!!!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.056 секунд. Запросов: 23.