#ifndef FOO_H
#define FOO_H
#include <QObject>
class foo : public QObject
{
Q_OBJECT
public:
foo();
int value() const { return val; }
~foo();
public slots:
void setValue( int );
signals:
void valueChanged( int );
private:
int val;
};
#endif // FOO_H
#include "foo.h"
foo::foo(): QObject()
{
}
foo::~foo()
{
}
void foo::setValue(int v)
{
if ( v != val ) {
val = v;
emit valueChanged(v);
}
}
#include <QtCore/QCoreApplication>
#include "foo.h"
#include <iostream>
int main(int argc, char *argv[])
{
QCoreApplication z(argc, argv);
foo *a=new foo;
foo *b=new foo;
QObject::connect(a, SIGNAL(valueChanged(int)), b, SLOT(setValue(int)));
b->setValue(11); // a == undefined b == 11
std::cout<<"a="<<a->value()<<"b="<<b->value()<<std::endl;
a->setValue(79); // a == 79 b == 79
std::cout<<"a="<<a->value()<<"b="<<b->value()<<std::endl;
return z.exec();
}