Как блокировать / игнорировать / отбрасывать события пользовательского ввода, которые старше определенного времени ожидания в Qt 4.8 - PullRequest
0 голосов
/ 15 октября 2018

Этот вопрос может быть связан с этими вопросами:

Я хотел бы обнаружить, если пользовательский ввод старше определенного тайм-аута, и при необходимости заблокировать такие события.Представьте себе сценарии, в которых пользовательский интерфейс не реагирует и зависает в главном потоке на несколько секунд, а пользователь продолжает отправлять входные события.Эти события ставятся в очередь и затем обрабатываются с определенной задержкой.Я хотел бы поймать это и быть в состоянии отбросить / игнорировать их.Я знаю, что этого никогда не должно происходить, поскольку пользовательский интерфейс всегда должен быть отзывчивым, а длинные задачи следует переносить в рабочие потоки или аналогичные концепции, но я все еще хочу иметь возможность обнаруживать такие редкие сценарии.Обратите внимание, что то же самое может произойти, когда сама система зависнет на несколько секунд, возможно, из-за высокой нагрузки на систему в целом.

1 Ответ

0 голосов
/ 04 декабря 2018

Я посмотрел код реализации по умолчанию доступных драйверов ввода в Qt для встраиваемых систем и решил написать собственную концепцию ввода, чтобы можно было читать метки времени из входных файлов Linux.Затем я использовал эти временные метки, чтобы сравнить их с текущим временем, чтобы отбросить их, если они были в очереди слишком давно.

Необходимый код очень зависит от платформы, но он работал для моего сценария.Я предполагаю, что должен принять свой собственный ответ, хотя я надеялся на более общее решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...