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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qt 4.5.0: PostEvent(), посылка собственного объекта события  (Прочитано 5109 раз)
Danila_Bagrofff
Гость
« : Август 24, 2009, 08:27 »

Мне нужно от одного класса передать в другой определенный набор данных.
QEvent дает возможность передать сообщение с указателем на свой класс. Как нужно сделать это корректно?

Код:
//класс события для передачи данных
class MyEvent : public QEvent
{
   public:
      MyEvent(Type type=QEvent::User);
      char Data[2000]; //данные для передачи
}

//функция в основном потоке:
void MainWindow::sendData()
{
 MyEvent *myEv = new MyEvent();

   //заполняем данные
   myEv->Data[0] = 1;

 QApplication::postEvent(mainObject, myEv); //mainObject - класс-приемщик событий, наследован от QObject
}

Насколько корректно создавать экзмпляр класса локально и тут же его передавать?
В примерах Qt делается именно так. Я пытался делать более глобально, но почему-то была ошибка, явно возникают поблемы в памяти.
Записан
spectre71
Гость
« Ответ #1 : Август 24, 2009, 09:19 »

... Я пытался делать более глобально, но почему-то была ошибка, явно возникают поблемы в памяти.
Что означает "более глобально" ?
Записан
kwisp
Гость
« Ответ #2 : Август 24, 2009, 10:13 »

void QCoreApplication::postEvent ( QObject * receiver, QEvent * event )   [static]

Adds the event event, with the object receiver as the receiver of the event, to an event queue and returns immediately.

The event must be allocated on the heap since the post event queue will take ownership of the event and delete it once it has been posted. It is not safe to modify or delete the event after it has been posted.

что тебя не устраивает?
покажи как делал что была ошибка.
Записан
Danila_Bagrofff
Гость
« Ответ #3 : Август 24, 2009, 12:12 »

Точно, он же всю кучу сам удаляет после обработки...
Надо читать ман внимательнее. спасибо.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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