以下是我想要做的基本想法:
每个小部件,当Gui的一部分可以访问事件管理器时。事件管理器是多态的,因此它包含底层图形/定时器api的功能。我想要做的是,允许Widgets注册定时器,他们将调用一个函数,在内部调用事件管理器来注册定时器。这是问题,当首次创建窗口小部件时,它不是Gui的一部分。因此,没有人可以在窗口小部件构造函数中注册计时器。
我想到了这样一个事实:我可以对请求进行排队,当小部件成为gui的一部分,并且可以访问事件管理器时,它可以使请求出列,但问题是它实际上并不允许我做的事情如下:
Timer *timer = registerTimer(0.17);
if(timer == NULL)
{
//uh ohs
}
else
{
timer->start();
}
我的问题可能有更好的方法吗?
由于
答案 0 :(得分:0)
事件管理和提供计时功能是两个非常不同的功能,所以我会尝试将事件管理器分成两个单独的类。然后你可以让TimerManager
成为一个单身人士,并从你喜欢的任何地方注册计时器。
或者,如果您不能像现在这样分离事件管理器类,您可以尝试以这种方式使其成为单例和访问计时工具。