gpt4 book ai didi

c++ - 使用双击事件创建 QLabel 时出现链接器错误

转载 作者:太空宇宙 更新时间:2023-11-04 12:10:39 25 4
gpt4 key购买 nike

我正在创建一个 QLabel 子类,它向其中添加了 DoubleClickEvent。我创建了以下内容,但出现了一些奇怪的链接器错误,也许有人可以指出我做错了什么?

//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 " (?metaObject@image_label@@UBEPBUQMetaObject@@XZ)

image_label.obj : error LNK2001: unresolved external symbol "public: virtual void * __thiscall image_label::qt_metacast(char const *)" (?qt_metacast@image_label@@UAEPAXPBD@Z)

image_label.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall image_label::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@image_label@@UAEHW4Call@QMetaObject@@HPAPAX@Z)

image_label.obj : error LNK2019: unresolved external symbol "protected: void __thiscall image_label::doubleClicked(void)" (?doubleClicked@image_label@@IAEXXZ) referenced in function "protected: virtual void __thiscall image_label::mouseDoubleClickEvent(class QMouseEvent *)" (?mouseDoubleClickEvent@image_label@@MAEXPAVQMouseEvent@@@Z)

谁能帮我解释为什么会出现这些错误?

最佳答案

您必须在文件 image_label.h 上运行 MOC 预处理器。这会生成一个文件 moc_image_label.cpp,您必须将其包含在构建中。错误消息表明您还没有这样做。 (错误信息中提到的image_label::metaObject等符号在moc_image_label.cpp中定义。)

关于c++ - 使用双击事件创建 QLabel 时出现链接器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10009466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com