1
私はDoubleClickEventを追加するQLabelサブクラスを作成しています。私は次のように作成しましたが、リンカのエラーがいくつか発生しています。ダブルクリックイベントでQLabelを作成するリンカエラー
//Header
#ifndef IMAGE_LABEL_H
#define IMAGE_LABEL_H
#include <QLabel>
#include <QMouseEvent>
class image_label : public QLabel
{
Q_OBJECT
public:
image_label(QWidget* parent = 0);
~image_label();
signals:
void doubleClicked();
protected:
void mouseDoubleClickEvent(QMouseEvent * e);
};
#endif
//CPP
#include "image_label.h"
#include <QMouseEvent>
image_label::image_label(QWidget* parent) : QLabel(parent)
{
}
image_label::~image_label()
{
}
void image_label::mouseDoubleClickEvent(QMouseEvent* e)
{
if (e->button() == Qt::LeftButton)
{
emit doubleClicked();
QLabel::mouseDoubleClickEvent(e);
}
}
私はコンパイル時に、私は、次のリンカエラーを取得:私はこれらのエラーを取得する理由
image_label.obj : error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall image_label::metaObject(void)const " ([email protected][email protected]@[email protected]@XZ)
image_label.obj : error LNK2001: unresolved external symbol "public: virtual void * __thiscall image_label::qt_metacast(char const *)" ([email protected][email protected]@[email protected])
image_label.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall image_label::qt_metacall(enum QMetaObject::Call,int,void * *)" ([email protected][email protected]@[email protected]@@[email protected])
image_label.obj : error LNK2019: unresolved external symbol "protected: void __thiscall image_label::doubleClicked(void)" ([email protected][email protected]@IAEXXZ) referenced in function "protected: virtual void __thiscall image_label::mouseDoubleClickEvent(class QMouseEvent *)" ([email protected][email protected]@[email protected]@@Z)
は誰も助けることができますか?
QTには含まれていませんが、このようなリンクエラーが発生しました[前](http://stackoverflow.com/questions/10006711/eclipse- c-project-not-building-constructor-destructor-issue/10007510#10007510)あなたが定義していないすべての仮想関数。おそらく、私は思っているだけの価値があるとは思えません。 –