位置: 编程技术 - 正文

ubuntu+QT+ OpenGL绘图(ubuntu运行qt程序)

编辑:rootadmin

推荐整理分享ubuntu+QT+ OpenGL绘图(ubuntu运行qt程序),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:ubuntu打开qt,ubuntu20 qt,ubuntu qt opencv,ubuntu运行qt程序,ubuntu qtcreator,ubuntu qt5,ubuntu qt5.12,ubuntu20 qt,内容如对您有帮助,希望把文章链接给更多的朋友!

ubuntu&#;QT&#;OpenGL绘图

我的开发环境是ubuntu&#;qt,为了要结合opencv&#;openni,并显示三维点云,所以在2大open环境下又考虑装一个OpenGL。具体安装方法如下:

1、 ctrl&#;al&#;t打开终端,输入 sudo apt-getinstall libqglviewer-dev,进行openGL安装。

2、 打开QT,进行测试。

2.1 新建项目

openGL一般是新建Qt Gui应用项目,在类信息中继承的是Qwidght基类。这样就会生成1个头文件,2个源文件,1个界面文件。

2.2 例程

--------------------------.h-----------------------------------------------

#ifndef GLWIDGET_H

#define GLWIDGET_H

#include <QtOpenGL>

#include <QWidget>

namespace Ui {

class GLWidget;

}

class GLWidget : public QGLWidget

{

Q_OBJECT

public:

explicitGLWidget(QGLWidget *parent = 0);

~GLWidget();

protected:

void initializeGL(); //初始化OpenGL窗口部件

void paintGL(); //绘制整个OpenGL窗口,只要有更新发生,这个函数就会被调用

void resizeGL(int width,int height); //处理窗口大小变化事件的,参数是新状态下的宽和高

voidkeyPressEvent(QKeyEvent *e); //鼠标处理函数

protected:

bool fullscreen; //判断是否全屏的变量

private:

Ui::GLWidget *ui;

};

#endif // GLWIDGET_H

--------------------------.h----------------------------------------

-------------------------.cpp--------------------------------------

#include "glwidget.h"

#include "ui_glwidget.h"

#include <QtGui>

#include <QtCore>

#include <QtOpenGL>

GLWidget::GLWidget(QGLWidget *parent) :

QGLWidget(parent),

ui(new Ui::GLWidget)

{

ui->setupUi(this);

fullscreen = false;

}

//这是对虚函数,这里是重写该函数

void GLWidget::initializeGL()

{

setGeometry(, , ,);//设置窗口初始位置和大小

glShadeModel(GL_FLAT);//设置阴影平滑模式

glClearColor(0.0, 0.0,0.0, 0);//改变窗口的背景颜色

glClearDepth(1.0);//设置深度缓存

glEnable(GL_DEPTH_TEST);//允许深度测试

glDepthFunc(GL_LEQUAL);//设置深度测试类型

glHint(GL_PERSPECTIVE_CORRECTION_HINT,GL_NICEST);//进行透视校正

}

void GLWidget::paintGL()

{

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );

glLoadIdentity();

//renderText(,,"Hello,My Dear");

// glColor3f(1.0, 0.0,0.0);

ubuntu+QT+ OpenGL绘图(ubuntu运行qt程序)

/*

glBegin(GL_TRIANGLES);

glVertex3f(0.0, 1.0,0.0);

glVertex3f(-1.0, -1.0,0.0);

glVertex3f(1.0, -1.0,0.0);

glEnd();

*/

glBegin(GL_TRIANGLES);

glColor3f(1.0f, 0.0f,0.0f);

glVertex3f(0.0f,1.0f, 0.0f);

glColor3f(0.0f, 1.0f,0.0f);

glVertex3f(-1.0f,-1.0f, 0.0f);

glColor3f(0.0f, 0.0f,1.0f);

glVertex3f(1.0f,-1.0f, 0.0f);

glEnd();

renderText(, ,"Hello Jcy, My first OpenGL app.");

}

//该程序是设置opengl场景透视图,程序中至少被执行一次(程序启动时).

void GLWidget::resizeGL(int width, int height)

{

if(0 == height)

height = 1;//防止一条边为0

glViewport(0, 0,(GLint)width, (GLint)height);//重置当前视口,本身不是重置窗口的,只不过是这里被Qt给封装好了

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

glLoadIdentity();//重置选择好的投影矩阵

// gluPerspective(.0,(GLfloat)width/(GLfloat)height, 0.1, .0);//建立透视投影矩阵

// glMatirxMode(GL_MODELVIEW);//以下2句和上面出现的解释一样

glLoadIdentity();

}

void GLWidget::keyPressEvent(QKeyEvent *e)

{

switch(e->key())

{

//F1键为全屏和普通屏显示切换键

case Qt::Key_F1:

fullscreen =!fullscreen;

if(fullscreen)

showFullScreen();

else

{

setGeometry(, , , );

showNormal();

}

updateGL();

break;

//Ese为退出程序键

case Qt::Key_Escape:

close();

}

}

GLWidget::~GLWidget()

{

delete ui;

}

-------------------------.cpp--------------------------------------

Main.cpp文件没任何改动。

输出是一个三角形。

3、可能出现的错误:

3.1错误:C: Cannot open include file: 'QtOpenGL': No such file ordirectory

如果你是这个错误,那么你需要在.pro文件中添加QT &#;= opengl

3.2错误:C: 'QGLWidget' : base class undefined

如果你是这个错误,那么请你在.h文件中添加 #include<QtOpenGL>

3.3错误:C: 'show' : is not a member of 'GLWidget'

如果你是这个错误,那么请你在.h文件中添加 #include<QtOpenGL>

第二节:导演类Director介绍 导演设计模式:导演类使用了一种设计模式,即导演设计模式,这样的模式,可以降低程序的耦合性。由导演来统一高度各个场景,而不是由场景去调

3DS 文件格式 3DS文件式1、读取规则3ds文件的读取规则如下:字节:直接读取;字:先读低位字节,后读高位字节,如ed3c读出后的字为3ced;双字:先读低位字,后读

Cocos2dx 3.2 + vs + win7 改变面黑色背景的大小 打开AppDeleGate.cpp找到函数applicationDidFinishLaunching,先是通过director=Director::getInstance();获得一个导演实例,然后通过autoglview=director-getOpenGLView();获得一个Ope

标签: ubuntu运行qt程序

本文链接地址:https://www.jiuchutong.com/biancheng/369463.html 转载请保留说明!

上一篇:OpenGL之裁剪平面(opengl图形裁剪)

下一篇:第二节:导演类Director介绍(导演都有什么分类)

  • 湖南个税申报系统app
  • 已缴纳车船税的车船在同一年度
  • 高速公路通行费电子发票怎么打印
  • 以前年度无形资产本年摊销额
  • 机械租赁属于什么分类
  • 发票面额增大
  • 小企业商品销售的入账价格
  • 年终奖金怎么扣税划算
  • 负数发票跨月怎么重开
  • 社保逾期滞纳金可以免除吗?
  • 结算本月应付职工工资40000元
  • 旅游费开票内容
  • 补税款的分录应该怎么写
  • 行政事业单位培训伙食补助报销规定
  • 上海个人住房房产税
  • 红字发票怎么申报?
  • 销售不动产扣除项目有哪些
  • 影视行业如何盈利
  • 增资溢价率
  • 面对通过网络涌入的大量信息,我们应该学会
  • 计提员工社保拿什么做原始凭证?
  • 在windows7中桌面指的是全部窗口
  • php初学
  • 华硕win10笔记本如何恢复出厂设置
  • 免征的增值税需要纳税调整吗
  • 销售商品并收到货款的会计分录
  • 未分配利润转增股本交印花税
  • 过路费进项税抵扣填在纳税申报的哪行
  • 员工离职后公司还用照片
  • 虚开发票的管理办法是什么?
  • 集群怎么写
  • java前后端加密解密请求
  • vue前端模板网站
  • 2023前端面试题目
  • 模型论文是什么类型
  • wordpress neve
  • mkfifo命令
  • 关于我和鬼变成家人的那件事
  • 交通运输增值税专票
  • 房开企业增值税销项税额
  • 个税代扣代缴手续费返还需要缴纳增值税吗
  • 外贸出口备案需准备什么资料
  • 含税含运费价格,运费谁出
  • 收到银行承兑汇票怎么兑现
  • 航天税盘服务费开的普票可以抵税吗
  • 房屋维修基金帐户处理办法
  • 收到退回的增值税,应当作为营业外收入核算对吗
  • 税后利润分配还要交税
  • 应交税金包括哪些税费
  • 季节性停工固定资产折旧计入什么科目
  • 固定资产房屋拆除后如何做帐务处理
  • 支付给其他公司的借款属于什么现金流
  • 新成立的公司工会经费免交一年吗
  • 代扣代缴完税凭证抵扣期限
  • 分期付款进项税额怎么算
  • 个人向公司账户存现金
  • 股权转让 会计
  • 跨年材料票可以入账吗
  • 预付款项给供应商合法吗
  • mysql双主复制
  • 安装最新的powershell,了解新功能和改进
  • kail Linux系统
  • win8系统咋样
  • git 登陆用户
  • python打开命令行
  • CocoStudio textfiled 文本点击区域按背景拉伸
  • glsurfaceview特性
  • 使用jquery的步骤
  • bat文件加密如何解锁
  • 2024年全年计划
  • angular中的$scope
  • 批处理设置文件夹添加user组权限
  • unity字符串
  • shell脚本计算字符串长度
  • 电子税务局季度利润表本月数
  • 没有单位怎么交职工养老保险
  • 如果我中了双色球
  • 税控盘如何查询季度统计
  • 税务津贴提高1100
  • 国税税票在哪里打印
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设