Как захватить MainWindow вместо centralWidget?

#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, но я все еще не могу захватить все основное окно. Кроме того, экран, который я схватил, стал зеленым. Могу ли я еще что-нибудь сделать? Или я неправильно изменил код?