Подтвердить что ты не робот

Должен ли я использовать QCoreApplication:: processEvents() или QApplication:: processEvents()?

У меня есть метод, который вызывается из QThreads и основного потока. этот метод иногда может занимать много времени, чтобы выполнять вычисления в цикле, поэтому я помещаю QCoreApplication::processEvents(), и это предотвращает замораживание GUI. В какой-то момент я изменил QCoreApplication::processEvents() на QApplication::processEvents(), но это заставило графический интерфейс замораживать (им довольно уверен, что это было его fereezing, потому что, поскольку я положил QCoreApplication::processEvents() назад, он не замерз еще раз). Правильно ли я считаю, что вызов QApplication::processEvents() как из основного потока, так и из QThreads может заморозить графический интерфейс?

4b9b3361

Ответ 2

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