资源简介
多个窗体之间要通信真的好麻烦,比如:A调出B,B调出C,那么C给A发消息,那就得经过B周转才能实现。对于两三层窗体,这种方法还可以接受,但嵌套太多就有点烦人了。
代码片段和文件信息
#include “globalObserver.h“
globalObserver *globalObserver::m_pInst = NULL;
globalObserver *globalObserver::getGlobalObserver()
{
if (m_pInst == NULL)
{
m_pInst = new globalObserver();
}
return m_pInst;
}
void globalObserver::release()
{
if (m_pInst != NULL)
{
delete m_pInst;
m_pInst = NULL;
}
}
void globalObserver::attach(const QString type Qobject *reciver const char *method)
{
obesrverApater *oA = obesrverApaterFactory::getInst()->createObesrverApater();
connect(oA SIGNAL(notify()) reciver method);
relationData *data = new relationData();
data->type = type;
data->reciver = reciver;
data->obesrverApater = oA;
m_oRelationList.append(data);
}
void globalObserver::detach(const QString type const Qobject *reciver)
{
QList::iterator iter = m_oRelationList.begin();
while (iter != m_oRelationList.end())
{
if ((*iter)->type.compare(type) == 0 && (*iter)->reciver == reciver)
{
relationData *data = *iter;
m_oRelationList.removeOne((*iter));
delete data->obesrverApater;
delete data;
return;
}
iter++;
}
}
void globalObserver::notify(const QString type)
{
QList::iterator iter = m_oRelationList.begin();
while (iter != m_oRelationList.end())
{
if ((*iter)->type.compare(type) == 0)
{
emit (*iter)->obesrverApater->notify();
}
iter++;
}
}
globalObserver::globalObserver(Qobject *parent) : Qobject(parent)
{
}
globalObserver::~globalObserver()
{
//释放列表数据
QList::iterator iter = m_oRelationList.begin();
while (iter != m_oRelationList.end())
{
delete (*iter)->obesrverApater;
delete *iter;
iter++;
}
}
相关资源
- Ubuntu下操作Excel,qt代码
- Qt图片浏览器 --基于Qt的Graphics View f
- qtnribbon2破解
- Qt软件开发 完整项目代码
- MQTT_3.1protocol_Specific中文版
- 在QT中使用RTP进行视频的采集和传输
- Mini6410 Qt4和Qtopia编程开发指南
- Qt实现Code39条形码
- qt_ffmpeg_mp4_export_and_import.zip
- QT5.5入门与项目实战
- Huffman Compress 霍夫曼编码 压缩 解压缩
- 基于QT的黑白棋游戏设计和实现
- Qt写的连连看小游戏
- QTranslate_6.7.2.7z
- Qt基于FFmpeg播放本地 H.264H264文件
- QT编的MP3播放器
- linux系统的二级文件系统(QT实现了简
- QT生成DLL库文件的方法和使用方法详解
- QT+opencv+OCR 身份证号码,银行卡号识别
- Qt实现的简单的中国象棋程序
- Qt时钟Demo,在原来基础上添加了秒针
- 基于Qt和opencv的身份证号码识别系统
- 基于FFmpeg4.0.2的AAC编码器
- Qt写的Windows下屏幕录制程序源码
- QT旅游攻略软件程序源代码
- mp4_play.zip
- ffmpeg+qt的简单播放器
- MyPeppa_Release_V1.0.rar
- 从零开始学习音视频编程技术十二 录
- Qt 日历可显示阴历生宵和时钟基于Q
评论
共有 条评论