QOpenGLWidget】的更多相关文章

Qt5.6.2版本存在这样一个问题(其它版本未测试),当main函数中设置了application.setAttribute(Qt::AA_NativeWindows)(用于使得每个子界面都可以获取winId,用来播放视频).然后在窗口中同时使用无边框透明自定义阴影(比如QGraphicsDropShadowEffect)和QOpenGLWidget,会发现除了QOpenGLWidget正常刷新外,其它本窗口内的控件均不刷新.尚未找到绕过的办法.…
1. QGLWidget 是Qt OpenGL模块,但是从其官方说明,推荐在Qt5.4 之后,使用QOpenglWidget版本,具体说明如下: Note: This class is part of the legacy Qt OpenGL module and, like the other QGL classes, should be avoided in the new applications. Instead, starting from Qt 5.4, prefer using Q…
关键代码是派生QOpenGLWidget,覆写paintEvent函数 QPainter p; p.begin(this); p.drawImage(QPoint(, ), m_Img); QLinearGradient grad(, , rect().width(), rect().height()); { QGradientStops gs; gs << QGradientStop(,,,)) << QGradientStop(,,,)) << QGradientS…
编译项目时,发现报错:VS 无法打开包括文件: “QOpenGLWidget”: No such file or directory,在Qt对应的目录(E:\Qt\Qt5.12.2\5.12.2\msvc2017_64\include)中发现QOpenGLWidget是在QtWidgets目录下面的,所以,引入的路径修改为:#include <QtWidgets/QOpenGLWidget>   即可.…
QOpenGLWidget描述 QOpenGLWidget类是用于渲染OpenGL图形. 除了可以选择使用QPainter和标准的OpenGL渲染图形,QOpenGLWidget类提供了在Qt应用程序中显示OpenGL图形的功能.它使用起来非常简单:新建类继承于QOpenGLWidget,使用方法就像继承于QWidget类子类一样. QOpenGLWidget类提供了三个方便的虚函数,可以在新建的子类中重新实现以完成OpenGL的任务: paintGL()—渲染OpenGL场景,需要更新Widg…
在QOpenGLWidget的构造函数添加下面几句代码即可 QSurfaceFormat surfaceFormat; surfaceFormat.setSamples();//多重采样 setFormat(surfaceFormat); //setFormat是QOpenGLWidget的函数 参考链接: 在qt的QOpenGLWidget开启opengl的抗锯齿…
参考:1.opengl绘制三角形 1.QOpenGLWidget的早先版本 QGLWidget是遗留Qt OpenGL模块的一部分,和其他QGL类一样,应该在新的应用程序中避免使用.相反,从Qt 5.4开始,最好使用QOpenGLWidget和QOpenGL类. 如果开发XP平台,由于兼容性问题,Qt5.4(不含)之后的QtOpenglWidget 则不兼容,建议还是用QGLWidget.   2.QOpenGLWidget类是用于呈现OpenGL图形的部件         QOpenGLWid…
This tutorial shows how to cross-compile the Embedded build of Qt 5.5 for Raspberry Pi 2. The Embedded build does not use the X11 server and instead displays the GUI directly using the Raspberry Pi framebuffer. We will show how to use a Raspberry Pi…
Qt 内置对OpenGL ES的支持.选用Qt进行OpenGL ES的开发是很方便的,很多辅助类都已经具备.从Qt 5.0開始添加了一个QWindow类,该类既能够使用OpenGL绘制3D图形,也能够使用QPainter绘制2D传统的GDI+图形.5.0曾经的QGLWidget不推荐再使用.在即将到来(官方时间是今年秋天)Qt 5.4会全然废弃QGLWidget.作为替代将会新增QOpenGLWidget和QOpenGLWindow类来方便OpenGL的编程. 好了废话不多说了.今天我会使用Op…
与解码相关的主要代码在上一篇博客中已经做了介绍,本篇我们会先讨论一下如何控制解码速度再提供一个我个人的封装思路.最后回归到界面设计环节重点看一下如何保证播放器界面在缩放和拖动的过程中保证视频画面的宽高比例. 一.解码速度 播放器播放媒体文件的时候播放进度需要我们自己控制.基本的控制方法有两种: 根据FPS控制视频的播放帧率,让音频跟随. 控制音频的播放解码速度,让视频跟随. 媒体文件在编码的时候,正常情况下视频数据和音频输出是交替写入的.换句话说,解码每一帧视频数据伴随需要播放的音频数据也应该被…
1.主要 模仿代码:OpenGL的教程 第3课 "tutorial03_matrices"的代码(E:\OpenGL_something\ogl-master) 2.参考代码:Qt5中的例子源码: (1)C:\Qt\Qt5.3.2\Examples\Qt-5.3\opengl (E:\Project_Qt532\Official_Examples) (2)C:\Qt\Qt5.3.2\Examples\Qt-5.3\opengl\cube (3)C:\Qt\Qt5.5.1\Example…
0.基本配置 0.1初始设置 (1)开户root账号并重启系统: 打开gedit /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf 添加greeter-show-manual-login=true 设置密码sudo passwd root (2)登录root账号并更改语言为英语 打开gedit /etc/default/locale修改 LANG="en_US.UTF-8" LANGUAGE="en_US:en" (3…
In the latest Qt 5.5, the QOpenGLWidget is much better and has less bugs than the QGLWidget, but it doesn't supply the good API to retrieve the native OpenGL context. On Mac OSX the situation would be a bit more difficult, since the platform is in Ob…
代码如下 YUV420P_Render.h #ifndef YUV420P_RENDER_H #define YUV420P_RENDER_H #include <QObject> #include <QOpenGLWidget> #include <QOpenGLFunctions> #include <QOpenGLShaderProgram> class YUV420P_Render: protected QOpenGLFunctions { publ…
直接上代码 Nv12Render.h #ifndef NV12RENDER_H #define NV12RENDER_H #include <QOpenGLFunctions> #include <QOpenGLShaderProgram> #include <QOpenGLBuffer> class Nv12Render : public QOpenGLFunctions { public: Nv12Render() = default; Nv12Render(con…
在之前的文章中讲到了OpenGL鼠标拾取操作的例子,工作中需要在Qt中实现,下面的程序演示了QT中opengl的拾取例子. 本例子在Qt5.12和Qt Creator4.8.0上测试,使用的是QOpenGLWidget类,在窗口的正中央有红绿两个三角形组成一个正方形,分别点击不同的三角形部分进行对象拾取. 相关代码如下: opengl_widget.h 1234567891011121314151617181920212223242526272829303132333435363738   #i…
1.OpenCV及QT开发环境搭建 windows基于vs2017的opencv安装 windows下安装QT并与visual studio 2017搭建开发环境 2.工程创建 1.导入Qt项目 选择:QT VS Tools->Open Qt Project File(.pro)… 2.新建Qt项目 1.选择:文件->新建->项目->测试->Qt GUI Application,输入工程名,下一步…进行新建. 2.“next”下一步 3.选择依赖的模块:最基础的QtCore.…
Opecv就是做計算機視覺,就是讲图片转换成计算机所能识别的数据 Mat类中由大量的内联函数,主要就是用于提高速度. 一般类型都用rgb,存的时候用CV_8UC3.create函数一般会把原来的空间释放.释放由opencv自动管理.但有时需要手动释放.   有时计算机会按照四字节对齐,所以step[0],表示二维矩阵中一行的字节数,只会比真正的实际存储的字节数多. 添加计时器: #include <opencv2/opencv.hpp>#include <iostream>usin…
ZC:Delphi中只要随便拖几个控件,设置一下属性就OK了.但是,Qt中 貌似没有 方便的方式来做这个... ZC:目前的解决方案是:Qt中 拖几个控件,然后点 工具条里面的 "栅格布局(G)" 1.想实现 类似 Delphi 中的效果:跟着 窗口大小变,上面部分的控件 不动.如下图,上面2个 button不动,下面的 Memo随着窗口的大小变化而变化: 2.20190404 暂时的方案: 主要思想:主界面 栅格布局,分成上下两部分: 上半部分 将 最小高度和最大高度 设置成一样的(…
QOpenGLFunctions的使用 1.  QOpenGLFunctions  说明  QOpenGLFunctions 类提供了跨平台的OpenGl ES2.0 API版本. OpenGL 2.0 提供了OpenGL中的子类集合,可以提供跨多个平台的桌面系统以及嵌入式OpenGL的实现.然而,却很难使用子类因为子类需要解决许多平台系统的操作问题. 因此 QOpenGLFunctions提供了这样的API,可以保证在所有的OpenGL系统中使用,并且也关注不同系统中的OpenGL的版本API…
在QT中实现3D绘制的方式: 1)   使用QT OpenGL模块(QOpenGLWidget等) 2)   使用QT 3D C++类(QEntity等) 3)   使用QT 3D QML类(Entity等) QT3D场景提供了一种快速设置3D场景的一种方式,用户凭借着封装好的实体可以快速的在顶层实体(画布)当中增加各种各样的实体,并且通过3DMax软件构造的OBJ文件与QT3D实现信息交互可以的帮助用户摆脱OpenGL的用代码绘制图形的繁琐. 下面以QT Demo “Basic Shapes…
Qt Widgets C++ Classes The Qt Widgets module extends Qt GUI with C++ widget functionality. More... API Reference These are links to the API reference materials. Qt Widgets C++ Classes Basic Widget Classes Advanced Widget Classes Abstract Widget Class…
本文译自:http://www.robot-home.it/blog/en/software/tutorial-opencv-qt-opengl-widget-per-visualizzare-immagini-da-opencv-in-una-gui-con-qt/ 重要术语保持英文不变,如Widget等.原文中rendering意为渲染或绘制. 此教程是关于在Qt图形界面中显示OpenCV图像的问题,我们创建了一个基于QGLWidget的Qt Widget. 这个Widget提供了更好的图像…
1. Win10, VS2013, libQGLViewer2.6.2 和 QT5.6.3编译时候会出错,初步判断libQGLViewer2.6.2不支持QT5 错误 error LNK1120: 个无法解析的外部命令 D:\Packages\G2O\libQGLViewer-\QGLViewer\debug\\QGLViewerd2.dll QGLViewer 错误 error LNK2001: 无法解析的外部符号 __imp__glBegin@ D:\Packages\G2O\libQGLV…
一.图形视图框架的结构 在前面讲的基本绘图中,我们可以自己绘制各种图形,并且控制它们.但是,如果需要同时绘制很多个相同或不同的图形,并且要控制它们的移动.检测它们的碰撞和叠加:或者我们想让自己绘制的图形可以拖动位置.进行缩放和旋转等操作.实现这些功能,要是还使用以前的方法,那么会十分困难.解决这些问题,可以使用Qt提供的图形视图框架. 图形视图(Graphics View)框架结构的主要特点如下: 图形视图(Graphics View)可以对大量定制的2D图形项进行管理和相互作用.视图部件可以让…
Qt的源码及预编译安装包在 Qt Archive下载,http://download.qt.io/archive/qt/, 目前最新的是Qt5,其中和Qt4不同的是,Qt5多了个QOpenGLWidget,而且自己包装了一套OpenGL函数,有时候还是想用第三方而不是全部的Qt一篮子解决方案的.这里还是用Qt4.8.6的SDK,OpenGL使用glew这样第三方图形扩展库,还能配置Qt+OSG,Qt+OGRE等很多C++库. Qt4.8.6 下载地址 http://download.qt.io/…
目录 1.解决方案 2.存在问题 1) 警告提示 2) 多线程问题 3) 其他 1.解决方案 不得不说关于OSG的资料实在太零散了,搜索了很多关于OSG在QT下的解决方案,都是各有各的说法,有的说的不是很清楚,有的已经过时了.这里提供一下自己的解决方案吧. 在远古的OSG里面,应该是提供对QT的支持的:不过应该是由于QT版本变动比较大,现在的OSG版本应该已经没有了.但是在GitHub上又有了新的osgQt项目(地址:https://github.com/openscenegraph/osgQt…
1.openglwidget.ui <ui version="4.0"> <author/> <comment/> <exportmacro/> <class>OpenGLWidget</class> <widget class="QWidget" name="OpenGLWidget"> <property name="geometry"…
1.Qt551 + vs2013 + Win7x64 缘由:将“教程14:渲染到纹理.html(http://www.opengl-tutorial.org/cn/intermediate-tutorials/tutorial-14-render-to-texture/)”("E:\OpenGL_something\ogl-master\tutorial14_render_to_texture")中的代码 改成 Qt的(原来是 C++&glfw) 问题:在 使用 帧缓存(Fra…
创建一个基类为widget的工程 把文件夹glut64放到代码目录下,文件夹包含以下文件 freeglut.dll freeglut.lib glut.h freeglut.h freeglut_ext.h freeglut_std.h 在工程文件*.pro中增加以下几行 win32: LIBS += -L$$PWD/glut64/ -lfreeglut INCLUDEPATH += $$PWD/glut64 DEPENDPATH += $$PWD/glut64 widget.h #ifndef…