将Qt Quick Cpp类重构为标头和.Cpp

Refactoring Qt Quick Cpp class into header and .cpp

本文关键字:Cpp Qt Quick 重构      更新时间:2023-10-16

我有一个Cpp类,我想将它重构为一个头文件和.Cpp文件。正常情况下没有问题,但当我尝试做这个Qt-Quick时,我无法编译它。如果我把所有这些都放在头文件中,那没关系,但除此之外,我会根据我的操作方式出现各种不同的错误。有合适的方法吗。我认为这与Q_INVOKABLE位有关,但不确定。

这是我的密码。。。

#ifndef APPLICATIONDATA_H
#define APPLICATIONDATA_H
#include <QDateTime>
#include <QObject>
class ApplicationData : public QObject
{
    Q_OBJECT
public:
    ApplicationData(){}
    Q_INVOKABLE QDateTime getCurrentDateTime() const{
        return QDateTime::currentDateTime();
    }
};
#endif // APPLICATIONDATA_H

谢谢你的指点。

这会编译,但我不确定它为什么会编译或没有编译:

//header file
#ifndef APPLICATIONDATA_H
#define APPLICATIONDATA_H
#include <QDateTime>
#include <QObject>
class ApplicationData : public QObject
{
    Q_OBJECT
public:
    ApplicationData();  //constructor
    Q_INVOKABLE QDateTime getCurrentDateTime() const;  //function
};
#endif // APPLICATIONDATA_H

//.cpp file
#include "applicationdata.h"
#include <QDateTime>
#include <QObject>
ApplicationData::ApplicationData(){}  //constructor implementation
QDateTime ApplicationData::getCurrentDateTime() const{  //function implementation
    return QDateTime::currentDateTime();
}