在Qt Creator中写一般/包含元对象系统的C++代码
1、首先我们创建一个不包含Qt特性的,普通的C++项目。
2、然后我们双击.pro项目管理文件。
3、在其中加入这条语句:
QT += core
然后将原来的CONFIG -= qt改为:
CONFIG += qt
然后保存文件。
4、到这一步已经算是配置完成了,但是我们还需要注意在之后我们编写子类时,需要继承自QObject基类。
5、这里贴一段简单的测试代码,表明我们成功的在一般的C++代码中使用了Qt的特性。项目树如下:
6、//main.h
#ifndef MAIN_H
#define MAIN_H
#include <QObject>
#include <QtCore/QDebug>
#include <QString>
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
#endif // MAIN_H
7、//myclass.h
#ifndef MYCLASS_H
#define MYCLASS_H
#include <main.h>
class myclass : public QObject
{
Q_OBJECT
Q_PROPERTY(QString myname_same MEMBER myname)
private:
QString myname;
public:
explicit myclass(QObject *parent = nullptr);
void setname(const QString &str_1);
void showname();
signals:
public slots:
};
#endif // MYCLASS_H
8、//main.cpp
#include "myclass.h"
using namespace std;
int main(){
myclass *p = new myclass;
p->showname();
p->setname("2333333333");
p->showname();
p->setProperty("myname_same","zxy");
cout<<"myname_same:"<<((p->property("myname_same")).toString()).toStdString()<<endl;
p->showname();
delete p;
return 0;
}
9、//myclass.cpp
#include "myclass.h"
myclass::myclass(QObject *parent) : QObject(parent){
myname="233";
}
void myclass::setname(const QString &str_1) {
myname = str_1;
}
void myclass::showname() {
cout <<"myname:"<< myname.toStdString() << endl;
}
10、运行结果:OK~!