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 是不是超级简单呢?

// 如果你指消息对话框,可以如下方法 QMessageBox msgBoxmsgBox.setText("The document has been modified.")msgBox.exec()// 如果你指QDialog,那么你只能在QDialog上面绘制你的界面,然后进行文字显示QDialog *dlg = new QDialog()QLabel *label = new QLabel(dlg)label->setText("You show text"):dlg->exec()

采用QPushButton控件。QPushButton支持图片和文字同时显示的。你把QIcon转成图片放入QPushButton中就可以了。

详情请自己百度,或者看QPushButton的帮助文档吧。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存