2

我用 Qt 和 OpenGL 做了一个项目。

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

现在我的问题是:

我希望在不同的程序中具有相同的功能。我不需要绘制任何图像等。我只是想知道是否有办法制作像paintGL()这样的函数,它会不断被调用,这样应用程序就不会关闭。我尝试只使用一个 while(true) 循环来保持我的程序运行,但是由于 while 循环,GUI 处于非活动状态。

任何技巧,最好是穿线以外的任何技巧。

谢谢。

4

1 回答 1

2

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

如果您需要不断地重新绘制某些内容,最简单的方法是在创建窗口时创建一个计时器,然后在计时器甚至处理程序或回调中,使您的窗口无效,从而强制重新绘制。然后可以按照计时器的频率调用您的油漆处理程序,例如每秒 25 次。

于 2009-11-27T10:28:55.623 回答