社区
工具平台和程序库
帖子详情
继承自QGLWidget的窗口使其它窗口显示异常
GK_2014
2018-05-24 08:53:41
我在做Qt界面的时候把一个窗口类继承自QGLWidget,想使用OpenGL来实时刷新图像,但是其它窗口貌似不刷新了,但是那些按钮仍然可以响应。有没有方法解决呢?
...全文
1018
回复
打赏
收藏
继承自QGLWidget的窗口使其它窗口显示异常
我在做Qt界面的时候把一个窗口类继承自QGLWidget,想使用OpenGL来实时刷新图像,但是其它窗口貌似不刷新了,但是那些按钮仍然可以响应。有没有方法解决呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
QtGLWidegt.rar
参考NeHe
QGL
Widget
的讲解,该demo是
继承
QGL
Widget
模块,实现了opengl
窗口
设置、创建三角形和四边形、对三角形及四边形上色及旋转功能。开发环境Qt5.7.1下,编译通过,无错误,可直接运行。
使用
QGL
Widget
类的QT应用程序开发
在示例代码中,我们展示了如何设置清屏颜色、视口大小和投影矩阵,并使用OpenGL的绘制函数绘制了一个简单的三角形。paintGL()函数用于实际的图形绘制操作,这里我们绘制了一个三角形,每个顶点的颜色分别为红色、绿色和蓝色。在这个类中,我们需要实现三个重要的函数:initializeGL()、resizeGL()和paintGL()。上述代码中,我们创建了一个QApplication对象来管理应用程序,然后创建一个MyGL
Widget
对象作为主
窗口
的内容,并设置
窗口
的初始大小为400x300。
QGL
Widget
,QOpenGL
Widget
和QOpenGLWindow简介
值得注意的是,initializeGL() 函数仅在第一次
显示
窗口
部件或者第一次更改OpenGL上下文时被调用,如果
窗口
部件需要重新初始化,需要调用makeCurrent()函数将当前上下文设置为null再重新调用initializeGL()函数。在这个函数中,可以编写OpenGL初始化代码,完成对OpenGL状态的配置和资源的创建。值得注意的是,paintGL() 函数不会在
窗口
部件刚刚创建时被调用,因此在这个函数中不应该进行任何初始化工作,而应该在initializeGL() 函数中进行。
QT的
QGL
Widget
类的使用
详细说明
QGL
Widget
类是用于渲染OpenGL图形的小部件。
QGL
Widget
提供了用于
显示
集成到Qt应用程序中的OpenGL图形的功能。使用非常简单。您可以从中
继承
并像其他任何Q
Widget
一样使用子类,除了可以在使用QPainter和标准OpenGL渲染命令之间进行选择。 注意:此类是旧式Qt OpenGL模块的一部分,并且与其他
QGL
类别一样,在新应用程序中应避免使用。相反,从Qt 5.4开始,更喜欢使用QOpenGL
Widget
和QOpenGL类。
QGL
Widget
提供了三个便捷的虚函数,
QGL
Widget
、QOpenGL
Widget
详解及区别
QOpenGL
Widget
类是用于呈现OpenGL图形的小部件。QOpenGL
Widget
提供
显示
集成到Qt应用程序中的OpenGL图形的功能。使用起来非常简单:让类
继承
它,并像其他Q
Widget
一样使用子类,额外可以选择使用QPainer和标准的OpenGL渲染命令。渲染OpenGL场景。每当需要更新小部件时调用。设置OpenGL视区、投影等。每当小部件调整了大小时都会调用该视区(并且当它第一次
显示
时也会调用,因为所有新创建的小部件都会自动获得一个调整大小的事件)。
工具平台和程序库
24,854
社区成员
27,343
社区内容
发帖
与我相关
我的任务
工具平台和程序库
C/C++ 工具平台和程序库
复制链接
扫一扫
分享
社区描述
C/C++ 工具平台和程序库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章