一個簡單程式中,繼承與QOpenGLWidget的自定義類,編譯沒有問題,但是執行的時候一片空白,沒有繪制出所需的點,怎么回事啊?繼承類代碼如下:
.h
#ifndef MYOPENGLWINDOW_H
#define MYOPENGLWINDOW_H
#include <QOpenGLWidget>
#include <QOpenGLFunctions>
#include <gl/GL.h>
class myOpenglWindow : public QOpenGLWidget, protected QOpenGLFunctions
{
Q_OBJECT
public:
explicit myOpenglWindow(QWidget *parent = nullptr);
protected:
void initializeGL();
void resizeGL(int w, int h);
void paintGL();
signals:
public slots:
};
#endif // MYOPENGLWINDOW_H
.cpp
#include "myopenglwindow.h"
#include <iostream>
#include "glut.h"
using namespace std;
myOpenglWindow::myOpenglWindow(QWidget *parent) : QOpenGLWidget(parent)
{
}
void myOpenglWindow::initializeGL()
{
initializeOpenGLFunctions();
glClearColor(1.0, 1.0, 1.0,1.0);
cout<<glGetString(GL_VERSION)<<endl;
}
void myOpenglWindow::resizeGL(int w, int h)
{
glViewport(0, 0, (GLsizei)w, (GLsizei)h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-1.5,1.5,-1.5,1.5);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void myOpenglWindow::paintGL()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPointSize(10.0);
glColor3d(1.0,0.0,0.0);
glBegin(GL_POINTS);
glVertex3d(0.0, 0.0, 0.0);
glEnd();
}
uj5u.com熱心網友回復:
百度搜相關關鍵字。uj5u.com熱心網友回復:
沒用過glut.h我是直接用opengl的原生函式沒有問題
uj5u.com熱心網友回復:
https://blog.csdn.net/p942005405/article/details/103739702轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/9530.html
標籤:工具平臺和程序庫
上一篇:資料結構中佇列問題
