opengl + Qtwidget不起作用

时间:2014-07-09 05:51:26

标签: c++ qt opengl

我在qt应用程序中创建了一个opengl程序,我正在使用这个视频教程来实现这个http://www.youtube.com/watch?v=1nzHSkY4K18。 但我的小部件不起作用,它确实显示图像,只显示屏幕后面的图像。这个和一个例子(来自我的opengl视图):

http://uploaddeimagens.com.br/imagens/screenshot_from_2014-07-09_02_44_19-png

这是我的代码:

我的Qtwidget视图:

#include "telafotos.h"
#include "ui_telafotos.h"

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

TelaFotos::~TelaFotos()
{
    delete ui;
}

我的QGLWidget:

    #include "imagemfestivalgl.h"

ImagemFestivalGl::ImagemFestivalGl(QWidget *parent) :
    QGLWidget(parent)
{
}


void ImagemFestivalGl::initializeGL(){
    glClearColor(1,1,0,1);
}

void ImagemFestivalGl::paintGL(){

}

void ImagemFestivalGl::resizeGL(int w, int h){

}

1 个答案:

答案 0 :(得分:1)

您需要在resizeGL中设置视口

void ImagemFestivalGl::resizeGL(int w, int h){
    glViewport (0,0,w,h);
}

并清除paintGL中的绘制缓冲区

void ImagemFestivalGl::paintGL(){
    glClear (GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT);
}

这应该会产生一个空白区域