2014-07-09 104 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); 
} 

這將導致一個空白區域