У меня странная проблема с виджетом, который долго не перерисовывался.
У меня есть один не-Qt-поток, который воспроизводит аудио и периодически отправляет пользовательское событие в мой поток GUI, основанный на аудиопозиция воспроизведения.Поток GUI реагирует, генерируя некоторую визуальную обратную связь (например, отображаемую метку поверх виджета) и вызывая repaint () для себя.Это прекрасно работает на Mac OSX и прекрасно работает в моем приложении для модульного тестирования, которое выполняет функции в Windows (XP & 7), однако виджет не перерисовывается должным образом в моем реальном приложении в Windows XP / 7, покавоспроизведение аудио завершено.
Правильное поведение наблюдается на OSX и в моем модульном тесте:
-> Custom Event
-> QEvent::Paint (12)
-> Custom Event
-> QEvent::Paint (12)
etc.
В моем реальном приложении наблюдается неправильное поведение:
-> Custom Event
-> QEvent::UpdateRequest (77)
-> Custom Event
-> QEvent::UpdateRequest (77)
etc.
-> QEvent::Paint (12)
Я пыталсяразличные вещи, чтобы заставить перерисовку происходить, например, QCoreApplication :: processEvents, но все безрезультатно.Я также пытался исключить события между потоками как виновника и использовал периодический таймер для опроса текущей позиции звука из потока GUI и обновления виджета, также без особой удачи.
Любые идеи о том, как продолжитьпоставьте диагноз, это будет с благодарностью!