Advertisement

Qt支持全局观察者模式(多层窗体之间直接传递消息)-传参功能

阅读量:

基于Qt框架的全局观察者模式实现(实现多层窗体间消息的直接传递)

复制代码
    近来做项目发现,多个窗体之间要通信真的好麻烦,比如:A调出B,B调出C,那么C给A发消息,那就得经过B转发才能实现。对于两三层窗体,这种方法还可以接受,但嵌套太多就有点烦人了。
    基于这个原因,那么要实现的东西就很清楚了,有一个全局类,去直接绑定信号槽关系,在需要触发的时候,通过这个全局类的函数,去相应的触发一下,就可以实现直连通信了。
    
    
      
      
    

globalObserver.h

复制代码
    #ifndef GLOBALOBSERVER_H
    #define GLOBALOBSERVER_H
    
    #include <QObject>
    #include "obesrverApater.h"
    
    struct relationData
    {
    QString type;
    QObject *reciver;
    obesrverApater *obesrverApater;
    };
    
    class globalObserver : public QObject
    {
    Q_OBJECT
    public:
    //因为是全局只有一个

全部评论 (0)

还没有任何评论哟~