2014-07-09 57 views
0

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

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){ 

} 
+0

抽奖缓冲区那真的是所有与该控件初始化工作openGL的会议?我从来没有用过它,但它看起来很短... – clambake

+0

看看http://qt-project.org/doc/qt-4.8/opengl-hellogl.html似乎有更多的事情要做 – clambake

回答

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); 
} 

这将导致一个空白区域