我用Qt和OpenGL创建了一个项目。

在Qt中,paintGL()反复调用我相信,所以我能够更改该函数之外的值并调用update()以便绘制新图像。 我也相信它一启动程序就会调用initializeGL()。

现在我的问题是:

我想在不同的程序中使用相同的功能。我不需要绘制任何图像,等等。我只是想知道是否有一种方法可以使像paintGL()这样的函数继续被调用,因此应用程序永远不会关闭。我尝试使用while(true)循环来保持程序运行,但由于while循环,GUI处于非活动状态。

除了穿线之外的任何提示。

感谢。

有帮助吗?

解决方案

确切的机制取决于您使用的GUI工具包。通常,您的应用程序需要不断地为运行循环提供服务以便调度事件。这就是为什么当你的应用程序在循环运行时没有响应的原因。

如果你需要不断重新绘制的东西,最简单的方法是在创建窗口时创建一个计时器,然后在计时器甚至处理程序或回调中,使窗口无效,这会强制重新绘制。然后可以按照计时器的频率调用您的绘图处理程序,例如每秒25次。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top