QNX 6.5.0 захватить экран или окно Qt C ++ - PullRequest
0 голосов
/ 14 декабря 2018

Мне нужно захватить экран или окно в QNX 6.5.0 - 8 раз в секунду.Если использовать стандартную низкоуровневую API-функцию PgReadScreen () , для разрешения экрана 1920x1080 (24 бита) очень мало времени ... При создании контекста PdCreateDirectContext () драйвер блокирует все остальные рисования.Он замораживает экран на несколько секунд.

Я также посмотрел регионы, но, как я понял, они не содержат графических данных окон?

Использовал Qt 5.7.1 с ограниченной функциональностью,Например, функция grabWindow () не реализована.

Хорошая идея: используйте функцию render () виджета, но некоторые объекты ... например: списокиз comboBox тоже виджет.Я должен следовать и нарисовать это тоже.

Есть идеи?

1 Ответ

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

Захват окон действительно прост.QWidget (widget.isWindow()==true) верхнего уровня поддерживается магазином поддержки QImage.Для этого не требуется перерисовка или вызовы OS API. Этот ответ имеет рабочую, в основном полную, но простую реализацию этой идеи.Он должен быть переносимым на любую платформу и любой виджет, если используется растровый бэкэнд.

...