#qt #opengl #qpixmap #qopenglwidget
Вопрос:
Когда я хочу захватить все окно целиком, я могу захватить только то, что нарисовано с помощью OpenGL в centralWidget.
QPixmap my_pixmap = QPixmap::grabWidget(ui-gt;OpenGLWidget, 0, 0, frameto264.iWidth, frameto264.iHeigth);
То, что я нарисовал с помощью QT, например QPixmap или QPainter(или даже в строке состояния), не может быть показано в grabWidget.
Может ли кто-нибудь сказать мне, как захватить все основное окно, или пользовательский интерфейс — gt;OpenGLWidgetgt; использовался неправильно?
Я впервые задаю вопрос о stackoverflow. Если в моем заявлении что-то не так, пожалуйста, будьте свободны исправить это.
Ответ №1:
Вы захватываете opengl только потому, что это то, что вы даете в качестве параметра методу grabWidget здесь:
QPixmap::grabWidget(ui-gt;OpenGLWidget....
Вместо того, чтобы делать
grabWidget(ui-gt;OpenGLWidget,...
переместите указатель на виджет OpenGL с помощью указателя на главное окно
Комментарии:
1. Я изменил код :
QPixmap::grabWidget(this,....
в классе mainwindow, но я все еще не могу захватить все основное окно. Кроме того, экран, который я схватил, стал зеленым. Могу ли я еще что-нибудь сделать? Или я неправильно изменил код?