Qt QApplication :: processEvents () в пользовательском обработчике событий - PullRequest
2 голосов
/ 30 декабря 2010

Можно ли вызвать QApplication :: processEvents () внутри обработчика событий, где есть длинный процесс Моя программа заканчивается с Segfault. Мой код примерно такой:

void MyApplication::customEvent(QEvent* event)
{
  if(event->type() == UserEventCustom)
  {
    for(int i = 0; i < 99999; ++i)
    {
       QApplication::processEvents();
       doSomething();
    }

    event->accept();
  }
}

1 Ответ

0 голосов
/ 11 мая 2011

Я подозреваю, что Тон ван ден Хеувель (из комментариев) прав, что вы видите переполнение стека.

Однако в моей компании мы сочли лучшим избегать processEvents ().Наш опыт показал, что processEvents () вызывает сбои, и мы стараемся избегать его использования.Я хотел бы спросить себя, можете ли вы сделать рефакторинг своего кода, чтобы обойтись без вызова processEvents ().Например, вы можете создать поток для обработки.

...