QML-компонентное отображение экрана

Можно ли захватить рендеринг экрана компонента QML и сохранить его в файле изображения? Я хотел бы управлять Компонентом через несколько разных состояний и захватывать его визуальный внешний вид для целей документации, без необходимости делать захват экрана/окна.

2 ответа

Да, вы можете настроить переходы состояния для вызова QWidget::grab, затем сохранить его в файл через QPixmap.

Если вам нужен пример того, как настроить код для вызова QWidget::grab, посмотрите на этот ответ: Как сделать ScreenShot Qt/QML

Важно заменить QPixmap::grabWidget на QWidget::grab, потому что QPixmap::grabWidget теперь устарел. Когда у вас есть QPixmap из QWidget::grab, следуйте документации в QPixmap, чтобы сохранить в нужном формате, например jpeg, png, gif.

Вот некоторые ссылки на документацию, чтобы помочь вам.

QWidget:: grab

QPixmap

QPixmap:: save


С Qt 5.4 теперь стало проще с grabToImage - этот метод находится на всех объектах QQuickItem.

ИЗМЕНИТЬ Стоит отметить, что элемент, который вы называете grabToImage(), должен быть дочерним элементом Window контейнера элементов

licensed under cc by-sa 3.0 with attribution.