QGLWidget
QGLWidget類是一個用於呈現OpenGL圖形的小部件。
QGLWidget提供了顯示集成到Qt應用程序中的OpenGL圖形的功能。它使用起來非常簡單。您可以從它繼承並像使用任何其他QWidget一樣使用子類,但您可以選擇使用QPaint和標准OpenGL渲染命令。
注意:這個類是傳統Qt OpenGL模塊的一部分,和其他QGL類一樣,應該避免在新的應用程序中使用。相反,從Qt5.4開始,更喜歡使用QOpenGLWidget和QOpenGL類。
QGLWidget提供了三個方便的虛擬函數,您可以在子類中重新實現這些函數,以執行典型的OpenGL任務:
paintGL()-渲染OpenGL場景。每當小部件需要更新時調用。 resizeGL()-設置OpenGL視口、投影等。每當小部件調整大小時(以及首次顯示時,因為所有新創建的小部件都會自動獲得調整大小事件),都會調用該小部件。 initializeGL()-設置OpenGL渲染上下文,定義顯示列表等。在第一次調用resizeGL()或paintGL()之前調用一次。
Public Functions
QGLWidget(QWidget *parent = nullptr, const QGLWidget *shareWidget = nullptr, Qt::WindowFlags f = ...) | |
QGLWidget(QGLContext *context, QWidget *parent = nullptr, const QGLWidget *shareWidget = nullptr, Qt::WindowFlags f = ...) | |
QGLWidget(const QGLFormat &format, QWidget *parent = nullptr, const QGLWidget *shareWidget = nullptr, Qt::WindowFlags f = ...) | |
virtual | ~QGLWidget() |
GLuint | bindTexture(const QImage &image, GLenum target = GL_TEXTURE_2D, GLint format = GL_RGBA) |
GLuint | bindTexture(const QPixmap &pixmap, GLenum target, GLint format, QGLContext::BindOptions options) |
GLuint | bindTexture(const QImage &image, GLenum target, GLint format, QGLContext::BindOptions options) |
GLuint | bindTexture(const QPixmap &pixmap, GLenum target = GL_TEXTURE_2D, GLint format = GL_RGBA) |
GLuint | bindTexture(const QString &fileName) |
const QGLColormap & | colormap() const |
QGLContext * | context() const |
void | deleteTexture(GLuint id) |
void | doneCurrent() |
bool | doubleBuffer() const |
void | drawTexture(const QRectF &target, GLuint textureId, GLenum textureTarget = GL_TEXTURE_2D) |
void | drawTexture(const QPointF &point, GLuint textureId, GLenum textureTarget = GL_TEXTURE_2D) |
QGLFormat | format() const |
QImage | grabFrameBuffer(bool withAlpha = false) |
bool | isSharing() const |
bool | isValid() const |
void | makeCurrent() |
void | makeOverlayCurrent() |
const QGLContext * | overlayContext() const |
void | qglClearColor(const QColor &c) const |
void | qglColor(const QColor &c) const |
QPixmap | renderPixmap(int w = 0, int h = 0, bool useContext = false) |
void | renderText(int x, int y, const QString &str, const QFont &font = QFont()) |
void | renderText(double x, double y, double z, const QString &str, const QFont &font = QFont()) |
void | setColormap(const QGLColormap &cmap) |
void | swapBuffers() |
##########################