在QT中,可以通过信号-槽机制实现两个类之间的事件触发。但是c++中没有这样的机制。通过自定义event的方式,可以实现一个类对象通知事件的触发。
下面的例子是一个通过MySingleton的event触发MainWindow方法的实例。
①event类中通过重载+=和()运算符提供方法的注册和执行;
②MySingleton类中定义event变量,并提供runMethod()方法触发消息;
③在MainWindow中定义事件执行方法func并注册到event中;
④在MainWindow中通过按钮调用MySingleton类的runMethod()方法触发消息。
以下是关键部分代码:
1、定义event类
myevent.h
typedef void(FUNC_TYPE)(MyEventParam* event_args);
class MyEvent{