我在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){
}
答案 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);
}
这应该会产生一个空白区域