LINUX.ORG.RU

Qt4 не могу соеденить сигнал со слотом


0

0

Привет всем.
Пните пожалуйста в нужном направлении.
Или подскажите решение.
Есть 2 объекта

///////////////////// one.h
#ifndef asssde
#define asssde
#include <QObject>
#include <QTcpSocket>
class one:public QObject{
Q_OBJECT
QTcpSocket *socket;
public:
one();
signals:
void done();
};
#endif
///////////////////// two.h
#ifndef asssde1
#define asssde1
#include <QObject>
#include <QTcpSocket>
class two:public QObject{
Q_OBJECT
QTcpSocket *socket;
public:
two();
public slots:
void onDone();
signals:
void done();
};
#endif
/////////////////// one.cpp
#include "one.h"
one::one():QObject(NULL){
socket=new QTcpSocket(this);
emit done();
}
////////////////// two.cpp
#include "one.h"
#include "two.h"
#include <QtCore>
two::two():QObject(NULL){
qDebug()<<"two";
socket=new QTcpSocket(this);
one *o=new one();
connect(o,SIGNAL(done()),this,SLOT(onDone()));
}
void two::onDone(){
qDebug()<<"done";
}
//////////////////////////

Что не правильно? (two не получает сигнал done от one)

anonymous

На сколько я понимаю, emit сигнала делается в конструкторе one. Конструктор вызывается строкой "one *o=new one();". На момент вызова конструктора связь между сигналом и слотом еще не установлена, т.к. connect делается позже.

Ximen ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.