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;
}
程序运行结果截图:
//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学习例子5——calculatorwidget
- Qt学习例子6——customtype
- Qt学习之旅---3.文件处理,小例子文本编辑器
- QT中QTreeView学习的两个例子
- Qt学习 之 Socket通信(世界上最简单的例子了)
- QT5.4 例子学习-01-Application Example
- Qt学习例子7——fileaccess
- qt fortuneserver 例子学习 ( 给客户端发送消息)
- Qt学习例子8——filechooser
- Qt学习 之 Socket通信(世界上最简单的例子了)
- Qt学习例子9——smile3
- KING_U3D学习之Unity Test Tools(一)_官方例子解析
- Qt学习 之 Socket通信(一个简单的例子)
- Qt学习例子10——Compsegraphicsitem
- QT学习之二:Qt命令模式下建立编译的第一个例子
- Qt例子一 AddressBook测试学习
- Qt学习例子11——Transformedsmiley
- Qt学习例子12——Movablesimley
- Qt多线程学习-用例子来理解多线程
- TinyOs例子之TestSerial学习