QT QOpenGLWidget使用说明(一)OpenGL 类的添加


Qt官网关于 QOpenGLWidget的说明: https://doc.qt.io/qt-6.2/qopenglwidget.html

一.Qt项目中添加OpenGL库

在这里插入图片描述

  1. cmakeList.txt中添加OpenGL库

    find_package(Qt6 COMPONENTS OpenGLWidgets REQUIRED)
    target_link_libraries(mytarget PRIVATE Qt6::OpenGLWidgets)
    

    在这里插入图片描述

  2. 头文件导入库

    #include <QOpenGLWidget>
    

二.添加OpenGL类

  1. 右键点击项目,选择Add New
    在这里插入图片描述
    2. 选择C++ Class
    在这里插入图片描述
    3. 输入类名称,选择继承类型为QWidget
    在这里插入图片描述
    4. 选择完成
    在这里插入图片描述
    5. cmake作为项目管理的话,会跳出提示需要手动复制添加的类到项目中
    在这里插入图片描述
    6. 手动添加类
    在这里插入图片描述
    7. 在头文件中添加OpenGL库,修改类的头文件和.cpp的继承对象
    在这里插入图片描述

    在这里插入图片描述
    8. 复制 QOpenGLWidget中需要实现的虚函数,在.cpp中添加实现 在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    9. ui界面添加opengl控件
    在这里插入图片描述

    1. 提升控件为新添加的类
      在这里插入图片描述
      在这里插入图片描述
    2. 在类中添加如下代码
      在这里插入图片描述
    3. 运行结果如下
      在这里插入图片描述
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Qt5中使用自定义的OpenGL类,可以通过继承QOpenGLWidget类来实现。 首先,创建一个新的类,继承QOpenGLWidget类,这个类将作为OpenGL场景的主窗口。在这个类的构造函数中,调用QSurfaceFormat类的setRenderableType()函数,将渲染类型设置为OpenGL,以确保正确的渲染环境被创建。 接下来,重载QOpenGLWidget的initializeGL()函数,这个函数会在OpenGL环境被创建后被调用,可以在这个函数中进行一些初始化操作,比如设置背景颜色、坐标系等。 然后,重载QOpenGLWidget的paintGL()函数,这个函数会在窗口需要重新绘制时被调用。可以在这个函数中进行绘图操作。使用OpenGL的功能函数进行绘图,比如glBegin()、glVertex3f()等。 在主窗口中,通过创建OpenGL类的对象并添加到主窗口的布局中,来实现自定义OpenGL的绘图效果。 需要注意的是,在绘图操作中,应该尽量避免使用过时的OpenGL固定管线的函数,而是使用现代OpenGL的核心模式。可以使用OpenGL的着色器(shader)进行绘图,以实现更高效和灵活的绘图操作。 最后,在主程序中创建MainWindow类的对象,并运行主循环,即可显示自定义的OpenGL绘图效果。 总结起来,使用自定义的OpenGL类进行绘图操作需要继承QOpenGLWidget类,在其中重载initializeGL()和paintGL()函数来进行初始化和绘图操作,然后通过创建对象并添加到主窗口中来实现自定义的OpenGL绘图效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AoDeLuo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值