QOpenGLWidget 绘图选择paintEvent还是 paintGL,两者有什么区别吗?都能开启硬件加速吗?

QOpenGLWidget 绘图选择paintEvent还是 paintGL,两者有什么区别吗?都能开启硬件加速吗?

c++
0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
在Qt5.4中如何实现QOpenGLWidget和QPainter混合编程
在Qt5.4的Example中,有一个例子qopenglwidget,介绍了QOpenGLWidget和QPainter,但是在使用过程中,需要注意哪些方面呢?我在最初使用的时候就遇到两者不能同时使用的问题,经过一番折腾,终于解决了该问题。下面,我将需要注意的点记录下来,以便查询。 第一种方法,也就是直接QOpenGLWidget的paintGL函数中绘制两者,其步骤为: QPainter p
QOpenGLWidget绘制2D的方法
可以重新实现paintGL(),在其中通过QPainter绘图。通过update()重绘。 也可以使用通常QWidget的paintEvent()方法实现绘图,通过update()重绘。 下面是官方文档的节选: Painting Techniques As described above, subclass QOpenGLWidget to render pure 3D content
QT中双缓冲加速绘制
QT中的绘制都是在函数paintEvent(QPaintEvent *event)中绘制的,而且必须在这个函数下面绘制。 绘制简单的图形的时候效率还是不错的,但是一旦绘制的内容比较多的时候,绘制的时候就是有些卡顿了。 有的同学就是说,可以使用线程的方式,多开一个线程就可以了,但是大家不要忘了,任何绘制的过程都是在paintEvent(QPaintEvent *event) 这个函数中实现的,...
使用paintEvent()对窗口进行OpenGL2D绘图
目录   概念 演示   概念 最近在看Qt官方文档,发现QOpenGLWidget中可以使用paintEvent进行OpenGL的2D绘图,不需要任何OpenGL的知识,只需要简单的Qt的知识即可,对此自己写了一个小栗子记录下。   演示 程序运行截图如下: 程序结构如下:   源码如下: glwidget.h #ifndef GLWIDGET_H #def...
qt中的OpenGL代码框架
initializeGL() 注册函数,在此设置GL的渲染绘制属性、定义显示列表、载入固定纹理等初始化工作。在initializeGL()在调用paintGL()之前只被调用一次,之后不再调用。paintGL() 绘制函数,在此使用OpenGL中的接口进行场景绘制,QGLWidget的paintEvent( QPaintEvent* )将会自动调用 paintGL()进行部件的显示绘制。也可在需要
开显卡硬件加速和不开的区别
简而言之,硬件加速就是利用硬件模块来替代软件算法以充分利用硬件所固有的快速特性。 硬件解码生效的时候,系统是怎么运转的呢?现在我们有两个处理器,CPU和GPU。他们通过PCI/AGP/PCIE总线交换数据。 1。CPU从文件系统里读出原始数据(DirectSHow的源滤镜),分离出压缩的视频数据(分离器)。放在系统内存中。 GPU 发呆 2。CPU把压缩视频数据交给GPU, 这时总线
QT +opengl 环境下 paintGL()函数的踩坑经历
    在paintGL()函数  如果在函数中有循环,例如,循环中每次对模型进行角度控制,那么此时模型不会像预期的那样,循环中的每次对模型进行改变,实际上,而是整个个函数仅仅是最终的角度变化。     如果要想实现paintGL()函数中的对角度的循环控制,可以把角度控制放在一个槽函数中,这个槽函数一方面处理角度的变化,另一方面又会去处理paintGL()的更新--采用updateGL()...
qt中绘图事件paintEvent 的用法
一.主要理解一下几个方法和属性: 1.QWidget * QScrollView::viewport () const 2.void QWidget::paintEvent ( QPaintEvent * ) [虚 保护] 3.void QWidget::repaint ( int x, int y, int w, int h, bool erase = TRUE ) [槽] 4.void
OpenGL在QT里的刷新问题
参考http://www.cnblogs.com/dabaopku/archive/2011/11/14/2247721.html 在QGraphicsView的事件中,不论使用 update,repaint,抑或updateScence,resetCacheContent, 均不可以刷新界面 要调用 viewport 的update函数!!! 给GraphicsView设置这么一个属性se
QOpenGLWidget空白不显示绘图内容
在做一个简单的基于Qt的OpenGL绘图的时候,发现通过调用Qt自带类QOpenGLWidget时,只显示背景颜色,不显示绘制的内容。 最初的代码如下: 头文件#ifndef MYOPENGLWIDGET_H #define MYOPENGLWIDGET_H#include <QOpenGLWidget> #include <QOpenGLFunctions> class myOpenglWid
尝试写第二个QOpenGLWidget程序 (未完成)
按照QGLWidegt的教程很有问题,因为两个完全不同了。       幸好搜到了官方的blog,http://blog.qt.io/blog/2014/09/10/qt-weekly-19-qopenglwidget/,文章前面就是说QOpenGLWidegt比QGLWidegt好,然后 (嵌入式就是es的,和desktop差不多的) [html] view pl
QT关键问题解决之paintevent理解
基础概念: paintEvent(QPaintEvent*)函数是QWidget类中的虚函数,用于ui的绘制,会在多种情况下被其他函数自动调用,比如update()时。 运行时机: 一个重绘事件用来重绘一个部件的全部或者部分区域,下面几个原因的任意一个都会发生重绘事件: (1)repaint()函数或者update()函数被调用; (2)被隐藏的部件现在被重新显示; (
关于Qt中的paintEvent事件
以下均来自与Qt文档,未作任何更改void QWidget::paintEvent(QPaintEvent *event)This event handler can be reimplemented in a subclass to receive paint events passed in event.A paint event is a request to repaint all or ...
QWindow自绘制(类似于QWidget的PaintEvent)
很多人使用了QWindow之后不知道要怎么去绘制成自己想要的样子。这里提供了一个简单的例子来帮组实现QWindow的自绘:首先定义一个测试的QWindow对象PaintWindow:#ifndef PAINTWINDOW_H #define PAINTWINDOW_H #include &amp;lt;QBackingStore&amp;gt; #include &amp;lt;QWindow&amp;gt; class P...
对Qt中双缓冲绘图的理解
对Qt中双缓冲绘图的理解 原教程 :http://bbs.qter.org/forum.php?mod=viewthread&tid=120&extra=page%3D1%26filter%3Dauthor%26orderby%3Ddateline%26orderby%3Ddateline 教程中的代码:void Dialog::paintEvent(QPaintEvent *
Qt不在paintEvent中画图,在槽函数中画图
void Widget::on_pushButton_clicked() { qint32 temp_width=ui-&amp;gt;label-&amp;gt;width(); qint32 temp_height=ui-&amp;gt;label-&amp;gt;height(); QImage mainimg=QImage(temp_width,temp_height,QImag...
canvas使用硬件加速
之前用 canvas 裁剪 绘制 bitmap, 发现bitmap显示用的缓存,没有裁剪, setLayerType(View.LAYER_TYPE_SOFTWARE,null);就可以了; Android的硬件加速       Android从3.0(API Level 11)开始,在绘制View的时候支持硬件加速,充分利用GPU的特性,使得绘制更加平滑,但是会多消耗一些内存
QOpenglWidget 画动态矩形
    使用的都是opengl的函数,只不过Qt再封装了一遍;在使用过程中有一些注意点,需要记下。我的头文件申明如下#ifndef GLDRAWWIDGET_H #define GLDRAWWIDGET_H #include &amp;lt;QOpenGLWidget&amp;gt; #include &amp;lt;QOpenGLFunctions&amp;gt; #include &amp;lt;QOpenGLBuffer&amp;gt;...
QWidget中update不执行paintEvent解决方案
在QWidget中,如果遇到调用它的update时,不执行paintEvent情况。 多半是两种情况, 1、update是disabled 2、此widget是hide的 3、设置了QWidget的setAttribute(Qt::WA_TranslucentBackground,true);属性会引起很多刷新问题 解决方案: 如果你没有禁用update,那么就是没有show出
如何判断是否启用了OpenGL硬件加速
作者: 刘鹏 日期: 2009-09-15 随着 GPU、显卡等图形设备的增强,图形硬件加速得到广泛的运用,那么如何判断是否启用了硬件加速呢?本文针对不同的系统做了详细的介绍。 X Window 对于 X Window 使用 glxinfo 和 glxgears 检测. glxinfo 显示 GLX 相关信息,包括图形加速、显卡、OpenGL 版本等。 dire
QOPenGLWidget与QPainter混合编程--绘制文本
前言:QOPenGLWidget取代了之前的QGLWidget类,用以在Qt中提供Opengl的编程接口。在QGLWidget类中,我们可以通过方法drawTexture来绘制文本。但是在QOPenGLWidget类的时候,这个方法没有提供了。官方文档给出的建议是混合QPainter使用。本文档就是介绍怎么用QPainter来在OPengl窗口上绘制2D文本 Qt使用QOpenglWidget构建一
简单的QT绘图程序(把全部的点都记录下来,然后在paintEvent里使用drawLine函数进行绘制,貌似效率很低。。。)
转载自:http://blog.csdn.net/jarvischu/article/details/6705127当初在学MFC时,最经典的入门实例就是绘图程序,其作用相当于Console Application 下的Hello World了吧。如今入手QT,不免怀旧,于是也写了一个绘图程序,虽然简单,却也是入门必备啊。环境OS : Ubuntu 11.04IDE :Qt Creator 2.2.
图形处理 OpenGL硬件加速
OpenGL被设计成独立于硬件,独立于窗口系统,在运行各种操作系统的各种计算机上都可用,并能在网络环境下以客户/服务器模式工作,是专业图形处理、科学计算等高端应用领域的标准图形库。Windows下常用的OpenGL库有两种,MS实现的和SGI实现的,MS-OpenGL调用会自动检测是否存在显示卡制造商提供的ICD(Installable Client DeviceDriver)驱动程序,有则调
Android 打开关闭硬件加速
尊重原创,原文出处:http://www.cnblogs.com/frydsh/archive/2012/10/23/2733581.html       Android从3.0(API Level 11)开始,在绘制View的时候支持硬件加速,充分利用GPU的特性,使得绘制更加平滑,但是会多消耗一些内存。       开启或关闭硬件加速:       由于硬件加速自身并非完美无
你真的了解CSS3硬件加速吗?
常听人说: 移动端要想动画性能流畅,应该使用3d硬件加速 最近深入了解了一些浏览器内核的细节,感觉这里面其实有坑啊。。。 事情要从最近看的《WebKit技术内幕》说起,第二章介绍了网页的结构,其中提到了Webkit硬件加速的方式,会把需要渲染的元素放到特定的『Composited Layer』中,在chrome的控制台可以这样开启: 选择『Show composited layer...
合适是最好,声音选项里面 声音的硬件加速到底有什么用
Q声音选项里面 声音的硬件加速到底有什么用?A声音采样率转换、混合、3D HRTF空间声音定位、过滤和其他声效处理等通过硬件实现就是完全 硬件加速,如果你选择无就是CPU加速,VISTA只有CPU加速。很多网上教程,特别是所谓的XX 优化教程都会教你“优化”系统:控制版面---声音和音频设备--音量--扬声器设置--高级--性能--硬件加速 或打开“开始”(Start) ->
Android中GPU硬件加速控制及其在2D图形绘制上的局限
图形的渲染可分为两种:软件渲染和硬件渲染。软件渲染是靠CPU计算各种坐标并绘制,主要是占用内存;硬件渲染是靠GPU,主要占用显存,一般的3D图形程序(OpenGL、DirectX)都是GPU加速的。在Android3.0之前,2D绘图API只支持软件渲染模式,从Android3.0开始,2D绘图API开始支持GPU硬件渲染,即View中的Canvas的绘图操作会使用GPU,所以从Android 3.
Android应用开发:图形绘制之硬件加速
引言 在Android3.0后,Android的2D渲染通道开始支持硬件加速,也就是说所有View的Canvas绘画动作都会使用GPU,同时也代表着应用程序会损耗更多的内存。而在Android4.0(API14)之后硬件加速功能就被默认开启了。如果你的应用程序是由各种标准View和Drawable组成的,那么硬件加速并不会引起任何不适。众所周知,使用硬件加速会调用到OpenGL,但是Op
是否应该开启WebView硬件加速?
是否应该开启WebView硬件加速 android webview 在3.0+后显示flash要启用硬件加速,开启硬件加速也能够使绘制更加平滑。 开启硬件加速是在manifest中加入: android:hardwareAccelerated=”true” 可以是Activity级别的,也可以是Application级别的。 webView中设置: - * setLayerType...
下面两者,有什么区别吗?
rn下面两者,有什么区别吗?rnrnchar gszAppName[] = "HTTPSRVM";rnchar gszAppName[] = "HTTPSRVM";
CISCO交换机的口令
思科交换机使能口令和加密口令有什么区别吗
QGLWidget的更新机制
Qt的OpenGL接口实际上是实现了glut中与opengl人机交互的功能,很多方法和glut重叠。 glut使用glutMainLoop调用glutDisplayFunc指定的显示函数实现更新 Qt中需要用QTimer类实现更新,具体做法是: 1.写一个类继承QGLWidget,在构造函数中启动QObject::startTimer(int interval)起动计时器 2.重载虚函数v
PyQt5教程(九)——绘图
PyQt5的绘图系统可用于渲染矢量图、图像和文本。如果想改变或增强已有的控件,或者想从头创建一个自定义控件时,我们就需要在程序中进行图形的绘制。我们可以使用PyQt5提供的绘图API进行绘图操作。绘图要在paintEvent()方法中实现。在QPainter对象的begin()与end()方法间编写绘图代码。它会在控件或其他图形设备上进行低级的图形绘制。绘制文本我们先以窗体内Unicode文本的绘制
在开发者选项里开启gpu渲染后,能不能关闭应用的硬件加速???
目前状况是魅族os默认开启gpu渲染,而我的app中带有使用drawpath方法绘制的view,导致开启硬件加速的时候drawpath方法无效,而且在配置文件里使用hardwareAccelerated="false"在application和activity级是不起作用的,有什么方法可用在开启强制gpu渲染的情况下关闭硬件加速,另外在对自定义view使用android:layerType="so
QT图形驱动加速器
在QT嵌入式Linux版本中,painting是一个纯软件实现,分两步:首先,每个窗口使用QPaintEngine在QWSWindowSurface画图,然后,服务器程序将内存中内容写入显示器中。嵌入式Linux版本QT使用QRasterPaintEngine来实现painting操作,利用QScreen来实现window composition为了实现加速,嵌入式版本进行如下操作:1、建立定制显
View的硬件加速绘制及绘图缓存机制
硬件加速绘制: 与软件绘制的drawSoftware()对应的是HardwareRenderer.draw(boolean)。在创建HardwareRenderer时,已经创建了一个HardwareCanvas,这个Canvas的绘制目标是EGLSurface。然后调用根View的getDisplayList()获得一个DisplayList对象,最后将这个DisplayList通过Hardwa...
Android不同层次开启硬件加速的方式和关闭硬件加速
&amp;gt; 硬件加速-- 硬件加速的主要原理,就是通过底层软件代码,将CPU不擅长的图形计算转换成GPU专用指令,由GPU完成。在Android中,大多数应用的界面都是利用常规的View来构建的(除了游戏、视频、图像等应用可能直接使用OpenGL ES)。-- DisplayList:   DisplayList是一个基本绘制元素,包含元素原始属性(位置、尺寸、角度、透明度等),对应Canvas的d...
谈谈android的硬件加速
从Android 3.0开始,Android 2D的绘制流程就设计为能够更好地支持硬件加速。使用GPU的View在Canvas上进行画的操作时都会使用硬件加速。在最新的Android版本里,图形硬件加速及绘制技巧得到了更好的提升.  1.Android 4.0硬件加速的使用  1.1 硬件加速的控制级别  启用硬件加速的最简单方法就是为整个系统打开硬件加速的全局设置。如果你的程序是标准View或者
【转】观看视频时启用硬件加速有什么用?如果关闭硬件加速又有什么区别呢?...
回答1:硬件加速是用显卡的GPU解码视频,几乎不占用CPU。在播放高清视频时CPU不给力就会卡,不卡也会占用率很高。开启硬件加速是让显卡分担了CPU的解码工作,所以你可以再开别的程序也不会卡。   回答2:硬件加速(Hardware acceleration)就是利用硬件模块来替代软件算法以充分利用硬件所固有的快速特性。硬件加速通常比软件算法的效率要高。 计算机显示使用硬件加速会快些,但有时会带来...
iOS硬件加速绘制图像
在iOS平台上,用什么库进行基于硬件加速的图像绘制呢? 考虑过基于CGGraphics的 View->drawInRect  但是这种方式是异步的,我无法控制绘制的绝对时间和频率。 也考虑过OpenGLES,然后使用2D的投影方式。但是又一个致命的缺陷,就是OpenGLES要求纹理长宽都必须是2的次数倍。(如果每一次绘制都要强制将图像拉伸到合适的尺寸,处理性能上有问题) iOS有
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 有大数据培训吗 有python培训吗

相似问题

0
QOpenGLWidget 绘图选择paintEvent还是 paintGL,两者有什么区别吗?都能开启硬件加速吗?
0
为什么在MFC中使用线程会出现程序崩溃?是我实用的方法不敌还是怎么回事?
2
fmp4文件不能正常播放,哪个box有问题?
2
为什么使用了ios::app txt中的数据还是被覆盖了
1
请问p前面的const意义何在?它存不存在,不都能避免被调函数对实参所指对象的修改吗??
2
将指针n赋给指针p,n++后,p有什么变化?
4
请问这里的break能跳出for循环吗?
0
海思3516a,图像调节,运动物体周围有透明边框,运动轨迹会显现出透明的糊状,一会儿又还原了
1
c++,如何输入一个一维数组和一个二维数组后判断二维数组中和一维数组有几个共同的元素?
2
用OOA和OOD两种方式画UML模型有什么不同?
2
数据结构中的顺序存储就一定是指数组形式的存储吗?
3
请问可以用测试代码实现控制cin内容吗?
0
QuadroP620显卡能3D vision实现Opengl立体显示吗,就是四缓冲立体显示那种
1
Everything是使用什么语言写的?Everything.db是一个数据库文件吗?用的是什么技术?
2
C++调用有参函数可以不传递参数吗?
1
pcm音频格式转换成ima_adpcm音频,有杂音,望各位大侠帮忙看看。
2
int add_child(node *head) 这个语句里有错误,让整个程序正确运行
0
qt程序 有知道原因的吗 求解答
1
可以用这个代码编改写说反话-加强版 吗?
1
如图编译成功但运行提示0x00ca16dd 处有未经处理的异常: 0xC0000005: 读取位置 0x001f7000 时发生访问冲突