Как создать скриншот QWidget?

Я работаю над домашней работой в Qt Creator, где рисую в QWidget, и мне нужно сохранить часть этого QWdiget.

Я пытался решить эту проблему:

 QPixmap pixmap;
 pixmap.copy(rectangle); // rectangle is part of QWidget, which I need to save
 pixmap.save("example.png");

Спасибо за помощь.

2 ответа

Решение

Ты можешь использовать QWidget::render за это. Если предположить, rectangle является QRect:

QPixmap pixmap(rectangle->size()); 
widget->render(&pixmap, QPoint(), QRegion(rectangle));

Очень просто:

QPixmap QWidget:: grab (const QRect & rectangle = QRect (QPoint (0, 0), QSize (-1, -1)))

sa: http://doc.qt.io/qt-5/qwidget.html

Другие вопросы по тегам