• 5105阅读
  • 4回复

Qt 4.1.1 问题 [复制链接]

上一主题 下一主题
离线zxxx
 
只看楼主 倒序阅读 楼主  发表于: 2006-05-28
我用Qt写OpenGL窗口,基类QGLWidget,我冲定义了如下函数:
void ImageView::initializeGL()
{
   glShadeModel( GL_SMOOTH );
   glClearColor( 0.0,0.0, 0.0,1.0 );
   glClearDepth( 1.0 );
   glEnable( GL_DEPTH_TEST );

   glDepthFunc( GL_LEQUAL );

   glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST );
}

////////////////////////////////////////////////////////////////////////////////////////////////////

void ImageView::resizeGL(int w, int h)
{
   
   if ( height == 0 )
   {
       height = 1;
   }
   //防止height为0。

   glViewport( 0, 0, (GLint)width, (GLint)height );
   //重置当前的视口(Viewport)。

   glMatrixMode( GL_PROJECTION );
   //选择投影矩阵。

   glLoadIdentity();
   //重置投影矩阵。

   gluPerspective( 45.0, (GLfloat)width/(GLfloat)height, 0.1, 100.0 );
   //建立透视投影矩阵。

   glMatrixMode( GL_MODELVIEW );
   //选择模型观察矩阵。

   glLoadIdentity();
   //重置模型观察矩阵。

}
/////////////////////////////////////////////////////////////////////////

void ImageView::paintGL()
{

   glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
   //清楚屏幕和深度缓存。

   glLoadIdentity();
          //添加绘制代码....
          //绘制四边形
   glBegin(GL_QUADS);
   glVertex3f(-1.0,-1.0,0.0);
   glVertex3f(-1.0,1.0,0.0);
   glVertex3f(1.0,1.0,0.0);
   glVertex3f(1.0,-1.0,0.0);
   glEnd();
   //glFlush();
}

main.cpp如下:

#include "mywidget.h"
int main( int argc, char **argv )
{
bool fs = false;

QApplication a(argc,argv);


  myWidget w( 0, 0, fs );

a.setMainWidget( &w );


w.show();

return a.exec();

}

但窗口中并未显示四边形,为什么????????
离线浪漫天使
只看该作者 1楼 发表于: 2006-05-29
引用第0楼zxxx2006-05-28 23:49发表的“Qt 4.1.1 问题”:
我用Qt写OpenGL窗口,基类QGLWidget,我冲定义了如下函数:
void ImageView::initializeGL()
{
  glShadeModel( GL_SMOOTH );
  glClearColor( 0.0,0.0, 0.0,1.0 );
.......



可以的话,麻烦楼主把整个工程上传一下,至少可以有相关的头文件能让我编译,以便发现问题所在,谢谢你的合作。
离线zxxx
只看该作者 2楼 发表于: 2006-05-29
工程如下:
附件: mywidget1.rar (11 K) 下载次数:2
离线zxxx
只看该作者 3楼 发表于: 2006-05-29
我觉着Qt4 的变化太大了
离线zxxx
只看该作者 4楼 发表于: 2006-05-29
那位大侠帮忙????谢谢!!!!!
快速回复
限100 字节
 
上一个 下一个