【发布时间】:2015-10-27 08:16:33
【问题描述】:
我有一个模板类,在我的例子中是一个状态机类,所以我可以用我的任何类类型构造它,这样它就可以使用带有指向成员函数的指针的函数表调用成员函数(种类就像一个回调)。
它通过在表中查找事件(状态和事件匹配)然后调用指向相应函数的指针来处理事件。
这一切正常。我接下来要做的是添加一个计时器,以便在计时器到期时调用带有事件代码“TIMER_EXPIRED”的 processEvent() 函数。
对我来说,问题是在 Qt 模板类中似乎不支持插槽/信号。所以,我可以添加一个 QTimer,但我无法连接它或定义/发出插槽/信号。
我的替代方法是在拥有状态机的类中实现计时器,这很好,但是我必须对所有使用状态机类的类执行此操作。
所以我不确定下一步该往哪个方向发展,有什么技巧可以用来解决这个问题吗?
我会添加示例代码,但是由于我无法在状态机类中实现 QTimer,因为我无法继承 QObject,所以还没有代码可以显示:(
【问题讨论】:
-
您可以使用 lambdas 代替插槽。
-
@SaZ,我不是 100% 了解 lambda 函数,但我仍然看不到它们如何帮助我在课堂上实现 QTimer,你能解释一下你的意思吗?