SWT PaintEvent从哪里来?如何影响它?

4
我正在尝试使用SWT和PaintListeners绘制和动画。我想影响动画的时间,但是我找不到任何说明PaintEvents在何处和如何生成以及如何影响它的内容,例如强制帧速率或仅将PaintEvent发送到特定小部件。
那么,这应该如何完成?是否应该这样做?-没有关于该主题的任何信息表明可能有更好的方法。
1个回答

3

1
谢谢,我知道'redraw()'和'update()'方法。如果我正确理解API,第一个方法只是在下一个绘制请求到来时标记小部件进行处理,而第二个方法则强制处理所有未完成的请求。它们都不会影响请求的生成。所以,这并没有回答我的问题。也许您可以详细说明一下您的第一部分“由SWT生成”和“每次需要时”。由SWT的哪个部分?如何确定需要? - kostja
@kostja 我认为 SWT 并不是自己生成这些绘制事件,而是依赖于底层的窗口系统(motif、gtk 或 Windows)。为什么重绘/更新不能满足您的需求? - Manuel Selva
我想在不同的系统上实现一致的帧率,所以我认为一个好主意是获取PaintEvent生成并使用timerExec()或类似方法进行控制。也许有更好的方法吗? - kostja
只需使用redraw()和update()即可完成。创建一个timeExec调用redraw(),然后在您的小部件上更新(),这将为您生成一个绘画事件。我仍然不明白您使用此解决方案时遇到的问题。 - Manuel Selva

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接