永发信息网

如何将opengl渲染到qt窗口

答案:1  悬赏:60  手机版
解决时间 2021-11-21 10:08
如何将opengl渲染到qt窗口
最佳答案
在 Qt5 中,新增了 QOpenGL* 类,用以取代之前的 QGL* 类。
注意,虽然我们仍然能通过 Qt5 中的 OpenGL 模块使用 QGL* 类,但强烈建议大家在新的 Qt 应用程序中使用 QOpenGL* 类而不是 QGL* 类。

2
另外,在 Qt5 中,已经将 OpenGL 集成到了 Gui 模块中。因此,我们要想使用与 OpenGL 相关的类和函数,只需要在 .pro 工程文件中包含 gui 模块就可以了,无需像以前一样还要包含 opengl 。

END
二、怎样在Qt5中使用OpenGL

下面,我们来通过一个实际例子来演示怎样在 Qt5 中使用 OpenGL。在这个例子中,为了便于大家理解,我们只创建一个简单的背景为黑色的 OpenGL 窗口。下面是程序的运行效果图。

首先,我们需要创建一个自定义的窗口类 Window。该类的父类有两个:
1)QOpenGLWindow:以公有方式继承
2)QOpenGLFunctions:以保护方式继承
另外,在通常情况下,我们还需要实现三个从父类继承的虚函数:
1)void initializeGL()
2)void resizeGL(int width, int height) //若无需对高、宽进行处理,此函数可省
3)void paintGL()

然后,我们来实现上面所声明的函数。
1) initializeGL
该函数用来初始化当前的 OpenGL 环境。
注意,在此函数中,我们必须调用 initializeOpenGLFunctions(); 语句以便 Qt 在后台完成 OpenGL 环境的初始化工作。
随后,使用 glClearColor 函数来设置清除颜色。该函数的前三个参数分别是红、绿、蓝的分量值,第四个参数为透明度值。

2)resizeGL
该函数主要用来对高度和宽度进行一些变化处理。当然,如果你没有什么特殊需求,也可以不处理这个函数。

3)paintGL
该函数才是重头戏,绘制一般在此函数内进行。在这里,作为示范,我们只是简单地用之前设置的清除颜色来清除窗口背景。

最后,我们添加一个 main.cpp 文件,在主函数中新建一个 Window 类对象,然后将其显示出来。啊哈,纵观整个过程,相比之前的 Qt 版本,在 Qt5 中使用 OpenGL 是不是超级简单呢?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
通州金菱驾校学车快吗?
鼎尚网咖地址有知道的么?有点事想过去!
女人盯着男人看,他突然说,别火辣辣的看着我
功放板上的两个4700UF 25v电容可以换两个1000
我最悉的一个
vue里面input怎么绑定数据
海峡两岸与朝韩问题有何本质不同
歌词 我越喝越清醒 醒来后更害怕
开心花屋地址在什么地方,想过去办事
大地丙太郎的主要作品
我很想知道70后和80的演员有哪些
一个男生不主动找你聊天,这就是对你没意思吧
男士戒指哪个牌子款式比较多,买多少钱的会比
开一个废旧钢材公司有什么税收优惠政策?
小房间网吧地址在什么地方,想过去办事,
推荐资讯
机油是市区好跑还是乡下好跑
右肩膀拔罐黑怎么回事
没在双流上班,子女能在双流读书吗?
创维50G6A平板电视怎么样
描述“”云开雾散开,太阳升起”诗句有哪些?
职场生存法则
如何消除考前不稳定情绪
飞不人古走鹰狗心能组哪些成语
杨小艳民俗饭庄(北京古镇雾灵山店)地址有知道
如何在电脑上给手机下载应用
朝阳村的介绍
国产人工耳蜗16岁做的好吗?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?