资源简介
多个窗体之间要通信真的好麻烦,比如: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++;
}
}
相关资源
- vtk QT做的三维地质可视化系统2of2
- Qt局域网聊天软件
- Qt Creator opengl实现四元数鼠标控制轨迹
- QT局域网聊天系统(基于QT5.修改过)
- qt-电子点菜系统
- C 餐厅叫号系统(QT平)
- QT 实现文件下载
- qt图像处理
- QT,JPEG解码源代码(已完成)
- Qt 播放音频文件
- Qt 读取16进制的data文件
- MQTT+串口(usart)透传
- 易语言QQTEA算法源码
- VC工程转Qt工程文件的工具
- MQTT推送Demo
- 基于Linux、QT的视频监控系统的设计与
- Qt 百度地图 定位
- QT酷炫界面开发指南《QmlBook》
- 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的黑白棋游戏设计和实现
评论
共有 条评论