在 QT 中显式调用paintGL

Posted

技术标签:

【中文标题】在 QT 中显式调用paintGL【英文标题】:Calling the paintGL explicitly in QT 【发布时间】:2014-11-25 07:28:12 【问题描述】:

在 Qt 中,由于这篇文章中提到的事件,paintGL 方法被自动调用: When is QGLWidget's paintGL called?。 如果我需要从类函数之一显式调用paintGL 方法,我需要做什么。 无效 CubeView::update() QMatrix4x4 世界; 双 posx=drawcursor(); world.translate(posx,0,0); 立方体->setLocalTransform(世界); std::cout

这是对我之前的问题的跟进,因为我现在已经清楚了一些事情。

1.您不能在 qt 中显式调用paintGL 方法。 2、QGLView类没有updateGL方法——QGLWidget有。

基于这些,我的问题是:

    我可以在 qt3d 中使用 QGL 小部件类吗?我可以在这里使用 QGL builder 等所有功能吗? qglview 中是否有任何方法可以替代 updategl 方法?在调用paintgl 类之前查看的某些方法?每次在paintgl之前检查的一些功能。

【问题讨论】:

【参考方案1】:

如果您想在不等待事件处理的情况下强制重绘,您可以致电QGLWidget::updateGL()。这样paintGL会立即被调用。

【讨论】:

对不起,我忘了说我正在使用 qt3d 并且我正在使用 QGLView 类。它有initializeGL 和paintGL 方法,但没有updateGL 方法。或者,是否有任何方法可以作为 qt3d 中更新方法的替代方法? 要在 qt5 上强制重绘 QOpenGLWidget,只需调用它的 update() 方法,不带参数。

以上是关于在 QT 中显式调用paintGL的主要内容,如果未能解决你的问题,请参考以下文章

我是不是需要在 grails 中显式刷新 GORM 保存调用?

在信号处理程序中显式调用析构函数

在 terraform 模块中显式使用提供程序

如何在使用 IMAPI 创建的 ISO 文件中显式创建目录结构?

在 DataFrameMapper 中显式删除列

为啥在 Haskell 中显式推导 Show/Read?