Qt下opengl环境中如何高效的绘制文字

Qt下opengl环境中如何高效的绘制文字,第1张

在 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

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

6

最后,我们添加一个 main.cpp 文件,在主函数中新建一个 Window 类对象,然后将其显示出来。啊哈,纵观整个过程,相比之前的 Qt 版本,在 Qt5 中使用 OpenGL 是不是超级简单呢?

nehe 的教程的第 13 、14 、17、43 课都有写

在百度上搜索 nehe opengl 就可以了

键盘输入 用 glut课的键盘按下响应函数就可以了 glutKeyboardFunc()

或者nehe教程里面也有

nehe是我看到的最好的opengl教程,写的很清楚很仔细。

当然不包括红宝书,红宝书是工具书不是教程。

这很麻烦. 你要先下载freetype字体 *** 作库. 使用这个库来加载一种字体文件.比如宋体...然后这个库可以告诉你某个字的轮廓线或者帮你渲染某个字.

然后你把他帮你画好的字塞到一张纹理里面就好了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7876486.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存