hjh175 2016-07-26 01:49 采纳率: 0%
浏览 4368

使用glClear和glClearColor,为什么背景颜色变不了呢,一直是黑的



#include "glwidget.h"
#include "qwidget.h"
#include "ui_widget.h"
#include "QTOPENGL\glu.h"
#include <QtGui>
#include <QtOpenGL>


/*
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
}

Widget::~Widget()
{
    delete ui;
}
*/

NeHeWidget::NeHeWidget(QGLWidget *parent,bool fs):
    QGLWidget(parent)
//  ui(new Ui::NeHeWidget)
{
//    ui->setupUi(this);
    fullscreen=fs;
    setGeometry(100,200,640,480);
    setWindowTitle("NeHe'OpenGL Framework");
    if(fullscreen)
        showFullScreen();
}
NeHeWidget::~NeHeWidget()
{
 //   delete ui;
}
void NeHeWidget::initializeGL()
{
    glClearColor(0.5,0.5,0.0,0.0);
    glShadeModel(GL_SMOOTH);
    glClearDepth(1.0);
    glEnable(GL_DEPTH_TEST);
    glDepthFunc(GL_LEQUAL);
    glHint(GL_PERSPECTIVE_CORRECTION_HINT,GL_NICEST);
}
void NeHeWidget::paintGL()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BITS);
    glLoadIdentity();
    glBegin(GL_TRIANGLES);
    glColor3f(1.0,0.0,0.0);
    glVertex3f(0.0,1.0,0.0);
    glVertex3f(-1.0,-1.0,0.0);
    glVertex3f(1.0,-1.0,0.0);
    glEnd();
}
void NeHeWidget::resizeGL(int width, int height)
{
    if(height==0)
    {
        height=1;
    }
    glViewport(0,0,(GLint)width,(GLint)height);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(45.0,(GLfloat)width/(GLfloat)height,0.1,100.0);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
}
void NeHeWidget::keyPressEvent(QKeyEvent*e)
{
    switch(e->key())
    {
    case Qt::Key_F2:
        fullscreen=!fullscreen;
        if(fullscreen)
        {
            showFullScreen();
        }
        else
        {
            showNormal();
            setGeometry(100,200,640,480);
        }
        updateGL();
        break;
    case Qt::Key_Escape:
        close();
    }
}

  • 写回答

2条回答 默认 最新

  • 无名程序员就是我 2022-02-27 16:16
    关注

    可以

    评论

报告相同问题?

悬赏问题

  • ¥15 武汉岩海低应变分析软件,导数据库里不显示波形图
  • ¥15 CreateBitmapFromWicBitmap内存释放问题。
  • ¥30 win c++ socket
  • ¥15 CanMv K210开发板实现功能
  • ¥15 C# datagridview 栏位进度
  • ¥15 vue3页面el-table页面数据过多
  • ¥100 vue3中融入gRPC-web
  • ¥15 kali环境运行volatility分析android内存文件,缺profile
  • ¥15 写uniapp时遇到的问题
  • ¥15 vs 2008 安装遇到问题