当前位置: 代码迷 >> QT开发 >> qt的 信号 怎样连接2个不同的“实例”。解决思路
  详细解决方案

qt的 信号 怎样连接2个不同的“实例”。解决思路

热度:490   发布时间:2016-04-25 04:51:30.0
qt的 信号 怎样连接2个不同的“实例”。


#include "stdafx.h"

#include <iostream>
#include <boost/signals2.hpp>

class CObjectA {

public:
typedef boost::signals2::signal<void ()> signal_t;
typedef boost::signals2::connection connection_t;


void notiff(){

std::cout << "in CObjectA " << std::endl;
m_created_signal();

}


connection_t add_created_slot(const signal_t::slot_type& subscriber)
{
return m_created_signal.connect(subscriber);
}

private:
signal_t m_created_signal;

};



class CObjectB{

public:

CObjectB();
void slotFunc(void);

void single(void){

MyObject.notiff();
}

private:
CObjectA MyObject;
};


void CObjectB::slotFunc(){
std::cout << "Object 666" << std::endl;
}


CObjectB::CObjectB():MyObject()
{
MyObject.add_created_slot(boost::bind(&CObjectB::slotFunc, this));

}


int main( int argc, char** argv )
{
 
CObjectA* apObj2=new test1;
CObjectB* pObj3=new test2;


  //test1->single() //成功
  test2->notiff(); //失败
  return 0;
}


有什么办法也能让test2实例中的信号也能成功发射吗。

csdn的排版比较难 大家将就看。。

------解决方案--------------------
这个 不是 Qt 的 信号槽,是boost的。
CSDN 有排版的 Tag 你没有用而已。
------解决方案--------------------
信号的链接是面向类的吧
------解决方案--------------------
  相关解决方案