我用的是ubuntu10.10;安装了qtcreator全套4.7.0;然后随便建一个工程,再pro文件中加入:
QT += opengl
在类的头文件中加入:
#include <QtOpenGL>
如果编译出现,找不到gl.h文件的错误,则是缺少了一些库;需要安装,执行下面的命令:
sudo apt-get install mesa-common-dev
sudo apt-get install freeglut3
sudo apt-get install freeglut3-dev
sudo apt-get install glutg3
sudo apt-get install glutg3-dev
sudo apt-get install libglut3
sudo apt-get install libglut3-dev
然后,写第一个基于QT的opengl程序:
#ifndef NEHEWIDGET_H
#define NEHEWIDGET_H
#include <QtOpenGL>
class NeHeWidget : public QGLWidget
{
Q_OBJECT
public:
NeHeWidget( QWidget* parent = 0 );
~NeHeWidget();
protected:
void initializeGL();
void paintGL();
void resizeGL( int width, int height );
void keyPressEvent( QKeyEvent *e );
private:
int base;
};
#endif//NEHEWIDGET_H
#include "nehewidget.h"
NeHeWidget::NeHeWidget( QWidget* parent )
: QGLWidget( parent )
{
setGeometry( 150, 100, 1024, 576 );
}
NeHeWidget::~NeHeWidget()
{
}
void NeHeWidget::initializeGL()
{
glShadeModel( GL_SMOOTH ); // Enables Smooth Shading
glClearColor( 0.0, 0.0, 0.0, 0.0 ); // Black Background
glClearDepth( 1.0 ); // Depth Buffer Setup
glEnable( GL_DEPTH_TEST ); // Enables Depth Testing
glDepthFunc( GL_LEQUAL ); // The Type Of Depth Test To Do
glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST ); // Really Nice Perspective Calculations
}
void NeHeWidget::paintGL()
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glLoadIdentity();
glTranslatef( -1.5, 0.0, -6.0 );
glBegin( GL_TRIANGLES );
glColor3f( 1.0, 0.0, 0.0 );
glVertex3f( 0.0, 1.0, 0.0 );
glColor3f( 0.0, 1.0, 0.0 );
glVertex3f( -1.0, -1.0, 0.0 );
glColor3f( 0.0, 0.0, 1.0 );
glVertex3f( 1.0, -1.0, 0.0 );
glEnd();
glTranslatef( 3.0, 0.0, 0.0 );
glColor3f( 0.5, 0.5, 1.0 );
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();
}
void NeHeWidget::resizeGL( int width, int height )
{
if ( height == 0 )
{
height = 1;
}
glViewport( 0, 0, width, height ); // (GLint)
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
gluPerspective( 45.0, (float)width/(float)height, 0.1, 100.0 ); // GLfloat
glMatrixMode( GL_MODELVIEW );
glLoadIdentity();
}
void NeHeWidget::keyPressEvent( QKeyEvent *e )
{
switch ( e->key() )
{
case Qt::Key_F2: //F2 key, full screen switch
break;
case Qt::Key_Escape: // Esc key, close window
{
close();
break;
}
default:
break;
}
}
这个主要是记录一下,没什么可用价值
分享到:
相关推荐
完整的QT工程案例,详细介绍了GT环境下OpenGL的编程例子,说明了三维图形的设计和展示过程。
OpenGL基于QT环境下的编程代码。测试通过。
此资源是我根据网络上的资源搜集并且整理而来。出于对原作者的尊重,资源免费。...----------------------------------------------- 经测试,在Ubuntu下(Qt...在bin下有Linux和Windows的可执行程序。可以放心地运行。
LINUX下KDE 2的Qt编程宝典 以流行的Qt库为对象,从程序设计角度全面介绍Linux/UNIX下基于Qt的图形界面程序开发方法 介绍怎样编写KDE应用程序、使用OpenGL类绘图和创建Netscape插件等
\第1章 Qt初步实践 2 \1.1 第一个Qt程序 2 \1.1.1 建立主程序 2 \1.1.2 建立工程 3 \1.1.3 编译/运行第一个Qt应用程序 8 \1.1.4 第一个Qt程序的代码分析 8 \1.2 使用Qt布局管理器 11 \1.3 关联操作 12 \1.4 小结 13 ...
\第1章 Qt初步实践 2 \1.1 第一个Qt程序 2 \1.1.1 建立主程序 2 \1.1.2 建立工程 3 \1.1.3 编译/运行第一个Qt应用程序 8 \1.1.4 第一个Qt程序的代码分析 8 \1.2 使用Qt布局管理器 11 \1.3 关联操作 12 \1.4 ...
第四部分——Qt编程技巧,介绍怎样编写KDE应用程序、使用OpenGL类绘图和创建Netscape插件等。第五部分——改善程序性能,介绍Qt程序的国际化、移植、调试等问题,以及怎样使用构造程序简单快捷地创建图形界面。附录...
还分别讲解了真正图形化的流行系统X Window、Qt、GNOME以及OpenGL的基本编程方法;最后,介绍了Bash编程和设备驱动编程。 本书包含大量实用实例,读者可以通过实例代码深入理解编程思想和技巧。本书的另一优点是...
以流行的Qt库为对象,从程序设计角度全面介绍Linux/UNIX下基于Qt的图形界面程序开发方法。全书共分5部分:第一部分——Qt基础知识,介绍Qt基本知识、面向对象程序设计、槽和信号、Qt构造块等内容。第二...
电子书是中文扫描版,...第29章 使用OpenGL和Mesa进行3D图形编程 第6部分 特殊编程技术 第30章 使用GNU Bash进行Shell编程 第31章 设备驱动程序 第7部分 补充内容 第32章 软件包管理第33章 建档 第34章 许可证的发放
还分别讲解了真正图形化的流行系统X Window、Qt、GNOME以及OpenGL的基本编程方法;最后,介绍了Bash编程和设备驱动编程。 本书包含大量实用实例,读者可以通过实例代码深入理解编程思想和技巧。本书另一优点是讲述了...
还分别讲解了真正图形化的流行系统X Windows、Qt、GNOME以及OpenGL的基本编程方法;最后,介绍了Bash编程和设备驱动编程。 本书包含大量实用实例,读者可以通过实例代码深入理解编程思想和技巧。本书另一优点是...
QT关于opengl的操作,对基本图形图像进行处理,可直接运行
ffmpeg4.1解码h264和h265,并使用Qt的OpenGL显示播放的例子 这是Qt的工程,建议使用Qt Creator 打开 Qt5.6.2(vs2013/mingw) + ffmpeg4.1 1.程序可以在windows/linux下直接编译使用。 2.windows下的库为...
Qt支持 Windows、Linux/Unix、Mac OS X、Android、BlackBerry、QNX等多种平台,并为这些不同的平台提供了统一的开发环境。 面向对象 C++是完全面向对象的,这一点和Objective-c等在开发很相似。而Qt又是基于C++一...
QT控件中显示图像方法有三种,使用QLabel,QWidget,QOpenGLWidget。 实现了QOpenGLWidget方法,使用显卡,绘制效率很高。
Qt是一个多平台的C++图形用户界面应用程序框架,Qt是完全面向对象的很容易扩展,并且允许真正地组件编程。 面向对象 Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。...
在源代码不经任何修改的情况下,这些程序即可流畅运行于Windows、Linu/UNIX、Mac OS X和嵌入式Linux上“一次编写,随处编译”。 本书对Qt进行了全面介绍,充分展示了Qt程序开发模式中的每一个细节。奇趣科技公司...
Qt本身不包括glut工具库。OpenGL只是一个标准,它的实现一般自带在操作系统里,只要确保显卡驱动足够新就可以使用。如果需要在程序里直接使用OpenGL,会有很多非常恶心的预备工作要做,而且可能还要专门为平台的差异...