抽象Gui API中的计时器

时间:2011-04-02 23:31:32

标签: c++ user-interface

以下是我想要做的基本想法:

每个小部件,当Gui的一部分可以访问事件管理器时。事件管理器是多态的,因此它包含底层图形/定时器api的功能。我想要做的是,允许Widgets注册定时器,他们将调用一个函数,在内部调用事件管理器来注册定时器。这是问题,当首次创建窗口小部件时,它不是Gui的一部分。因此,没有人可以在窗口小部件构造函数中注册计时器。

我想到了这样一个事实:我可以对请求进行排队,当小部件成为gui的一部分,并且可以访问事件管理器时,它可以使请求出列,但问题是它实际上并不允许我做的事情如下:

Timer *timer = registerTimer(0.17);

if(timer == NULL)
{
   //uh ohs
}
else
{
   timer->start();
}

我的问题可能有更好的方法吗?

由于

1 个答案:

答案 0 :(得分:0)

事件管理和提供计时功能是两个非常不同的功能,所以我会尝试将事件管理器分成两个单独的类。然后你可以让TimerManager成为一个单身人士,并从你喜欢的任何地方注册计时器。

或者,如果您不能像现在这样分离事件管理器类,您可以尝试以这种方式使其成为单例和访问计时工具。