2016-04-29 10 views
0

ヘッダーと.cppファイルにリファクタリングするCppクラスがあります。通常どおり問題はありませんが、このQt Quickを実行しようとするとコンパイルできません。ヘッダーファイルにすべてを入れても問題ありませんが、そうでない場合は、どうやってやるかによってさまざまなエラーが発生します。適切な方法がありますか?私はそれがQ_INVOKABLEビットと関係があると思いますが、わかりません。ここでQtクイックCppクラスをヘッダーと.cppにリファクタリングする

は私のコードは...任意のポインタのための

#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 

おかげです。

+2

は可能なはずです。次に試行錯誤メッセージを表示してください。 – krOoze

+0

@krOozeあなたのオファーのおかげで非常に感謝します。私はヘッダーのすべてのバージョンに戻っていました。私はあなたのためにそれを再ポストするために何をしたのかを再現しようとしていましたが、それが始まったばかりです。私は前に間違っていたことを本当に理解していないと告白します。試してみる時間を費やし、それがちょうどうまくいった。乾杯。 –

+0

ご質問が分かりません。 "これをやろうとする(ヘッダーと.cppファイルにリファクタリングする)Qt Quick one私はコンパイルすることができません。"私が考えることができる唯一のことはこのリンクです:http://doc.qt.io/qt-5/qtqml-cppintegration-interactqmlfromcpp.html –

答えて

0

これはコンパイルが、私はそれがない理由はわからないか、それはしなかった理由:

//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(); 
} 
+0

それは必要です。おそらく何かを忘れてしまったでしょう(ヘッダー、constまたはApplicationData ::は一般的な省略を含みます) – krOoze