我用的是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 OpenGL 的准备工作】在开始Qt OpenGL编程之前,你需要确保拥有合适的开发环境。Qt有多个版本,其中自由版和企业版支持OpenGL模块,而专业版则不支持。对于Unix/Linux系统,你可以使用Qt 3.1.0自由版或企业版,...
完整的QT工程案例,详细介绍了GT环境下OpenGL的编程例子,说明了三维图形的设计和展示过程。
Qt是一个跨平台的应用程序开发框架,它支持多种操作系统,如Windows、Linux、macOS等。OpenGL则是一个用于渲染2D和3D图形的库,广泛应用于游戏开发、科学可视化、虚拟现实等领域。当我们结合Qt和OpenGL时,可以利用...
【Qt+OpenGL框架代码】是基于C++编程语言和Visual Studio 2017 IDE实现的一个图形用户界面(GUI)应用程序框架。这个框架利用了Qt库的强大功能以及OpenGL的3D图形渲染能力,旨在帮助开发者快速构建具有高性能3D图形...
在本项目中,"qt+opengl实现的烟花粒子爆炸效果"是一个利用Qt框架和OpenGL图形库...通过学习和分析这个项目,开发者可以深入理解Qt的图形界面编程以及OpenGL的图形渲染原理,同时提升在实时图形应用开发方面的能力。
在3D图形编程中,Qt提供了QGLWidget或QOpenGLWidget类,用于在应用程序中集成OpenGL渲染。 **OpenGL**: OpenGL是一种用于渲染2D、3D矢量图形的低级跨语言、跨平台的应用程序编程接口(API)。它被广泛用于计算机...
【Qt OpenGL 教程】是针对Qt 4.5.3版本的一系列教程,旨在帮助开发者结合Qt框架进行OpenGL编程。教程内容源自NeHe的OpenGL教程,并针对Qt进行了改编,覆盖了从基础到进阶的各种主题,包括: 1. **Qt OpenGL的准备...
在开始QtOpenGL编程之前,我们需要了解一些基础知识点: 1.Qt版本和平台支持:Qt支持多种操作系统平台,包括Unix/X11、Linux、Windows等。对于OpenGL的支持,各个平台略有不同。在Unix/X11或Linux环境下,自由版或...
2. **创建QT项目**:使用QT Creator创建一个新的QT项目,选择C++作为编程语言。 3. **链接SDL库**:在项目的.pro文件中,添加链接SDL库的配置,如`LIBS += -lSDL2 -lSDL2main`。 4. **编写代码**:在QT的主窗口类...
在本文中,我们将深入探讨如何使用Visual Studio 2005 (VS2005)、QT库和OpenGL来创建一个机械运动的演示程序。这是一个适合初学者的项目,可以帮助理解这三个工具的集成以及在图形化模拟中的应用。 首先,让我们...
在本项目中,OpenGL可能被用来增强Qt3D的渲染性能,或者在特定情况下,如自定义着色器时,与Qt3D协同工作。 3. **OBJ模型文件**: OBJ是一种通用的3D模型文件格式,包含顶点、纹理坐标、法线等几何数据,以及面...
在Linux环境下,使用Qt进行OpenGL开发是一项常见的任务,Qt是一个强大的C++图形用户界面工具包,而OpenGL则是一个跨语言、跨平台的编程接口,用于渲染2D和3D图形。本教程将深入探讨如何结合这两者,在Linux系统中...
【C++项目】Qt+OpenGL模拟太阳系行星系统.zip是一个基于C++编程语言,利用Qt框架和OpenGL图形库实现的毕业设计项目。这个项目旨在模拟我们的太阳系,展示行星围绕太阳的运动轨迹,为学习者提供了对物理学、天文学...
- **跨平台性**:利用Qt Creator和OpenGL,你可以创建的应用不仅限于单一操作系统,而是可以在Windows、macOS和Linux等多个平台上运行,极大地扩展了应用的适用范围。 - **高效的图形处理**:OpenGL作为高性能的...
在本项目中,"redhat7.4+qt5.9.3+openGL三维坐标演示程序" 是一个基于Linux操作系统Red Hat ...通过分析和运行此项目,可以深入理解Qt和OpenGL如何协同工作,以及如何在Linux环境下创建高性能的图形应用程序。
QT支持多种操作系统,如Windows、Linux、macOS、Android和iOS等,提供C++和QML两种编程语言。它包含了丰富的GUI组件,使得开发者能够方便地构建用户界面,同时提供了网络、数据库、XML处理等功能,是开发桌面和移动...
在本项目中,我们关注的是如何在Visual Studio 2013环境下集成并使用QT 5.6.3库,特别是结合OpenGL进行图形绘制。这是一个关于C++编程、图形渲染和跨平台开发的重要主题,广泛应用于游戏开发、科学计算可视化等领域...
在开始Qt OpenGL编程之前,需要做一些准备工作。首先,确保你的Qt版本支持OpenGL模块。对于Unix/Linux系统,自由版或企业版的Qt都支持OpenGL,而专业版则不包含此模块。通常需要安装GCC编译器和X图形环境,以及Mesa...
- **跨平台性**:Qt框架支持多种操作系统,如Windows、Linux和macOS等,这意味着开发者可以使用同一套代码库来开发针对不同操作系统的应用程序,极大地简化了开发流程并降低了维护成本。 - **高性能的图形渲染**:...