您的位置:首页 > 编程语言 > Qt开发

Qt学习例子3——test

2011-04-08 13:08 351 查看
本工程主要测试下Q_PROPERTY宏的使用、各类间的继承关系、qDebug的使用(也是VS2008下的)

 

//ValueObject.h

 

class ValueObject :
    public QObject
{
    Q_OBJECT
    Q_PROPERTY(int value READ value WRITE setValue)
 
public:
    ValueObject(void);
    virtual ~ValueObject(void);
 
    int value(void) const;
 
public slots:
    void setValue(int);
signals:
    void valueChanged(int);
 
private:
    int m_value;
};
 

//ValueObject.cpp

#include "ValueObject.h"
 
ValueObject::ValueObject(void):m_value(-1)
{
}
 
ValueObject::~ValueObject(void)
{
}
 
int ValueObject::value(void) const
{
    return m_value;
}
 
void ValueObject::setValue(int v)
{
    if(v==m_value)
       return;
 
    m_value=v;
    emit valueChanged(v);
}
 
 
 

 

//Main.cpp

#include "test.h"
#include <QtGui/QApplication>
 
#include <QFile>
#include <QVariant>
 
#include "ValueObject.h"
 
int main(int argc, char *argv[])
{
//  QApplication a(argc, argv);
//  Test w;
//  w.show();
//  return a.exec();
 
 
 
    //leaking memory
 
 
//  qDebug("Is derived from ValueObject: %d", o.inherits("ValueObject"));
//  qDebug("Is derived from QObject: %d", o.inherits("QObject"));
 
 
    // Insert code here
    //qDebug("Items in list: %d", myList.size());
    //QObject::inherits(const char *className)
 
    ValueObject* o1=new ValueObject;
    ValueObject* o2=new ValueObject;
 
 
 
    o1->setValue(1);
    o2->setValue(2);
 
    // Connect here
    QObject::connect(o1, SIGNAL(valueChanged(int)),o2,SLOT(setValue(int)));
    QObject::connect(o2, SIGNAL(valueChanged(int)),o1,SLOT(setValue(int)));
 
    qDebug("o1: %d, o2: %d", o1->value(), o2->value());
 
    o1->setValue(42);
    qDebug("o1: %d, o2: %d", o1->value(), o2->value());
 
    o2->setValue(11);
    qDebug("o1: %d, o2: %d", o1->value(), o2->value());
 
    return 0;
}
 

程序运行结果截图:

 
 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  qt signal insert list 测试