Witam, mam taką klasę jak poniżej i chcę aby emitowała pewien sygnał ale kiedy używam w pliku.h Q_OBJECT
to dostaję takie błędy kompilacji jak niżej i nie mogę uruchomić programu. Gdy używam Q_OBJECT w innych klasa jakie stworzyłem dostaję takie sam błędy. Skąd się one biorą?
plik.h
#pragma once
#include <QFrame>
#include <QObject>
#include <QPushButton>
#include <QLineEdit>
#include <QLabel>
#include <QGridLayout>
class DeleteFrame : public QFrame
{
Q_OBJECT
public:
DeleteFrame();
private:
int id_number;
QLineEdit* inputField;
QLabel* text;
QPushButton* okBtn;
QPushButton* cancelBtn;
QGridLayout* mainLayout;
};
plik.cpp
#include "deleteframe.h"
DeleteFrame::DeleteFrame()
{
this->setWindowFlags(Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint);
this->setGeometry(0, 0, 400, 100);
mainLayout = new QGridLayout(this);
mainLayout->setSpacing(5);
mainLayout->setAlignment(Qt::AlignCenter);
text = new QLabel(this);
text->setText("ID number");
text->setAlignment(Qt::AlignCenter);
text->setMaximumSize(100, 30);
mainLayout->addWidget(text, 0, 0);
inputField = new QLineEdit(this);
inputField->setMaximumSize(200, 30);
mainLayout->addWidget(inputField, 0, 1);
okBtn = new QPushButton("Ok", this);
okBtn->setMaximumSize(150, 50);
okBtn->setMinimumSize(150, 50);
mainLayout->addWidget(okBtn, 1, 0);
cancelBtn = new QPushButton("Cancel", this);
cancelBtn->setMaximumSize(150, 50);
cancelBtn->setMinimumSize(150, 50);
mainLayout->addWidget(cancelBtn, 1, 1);
this->setLayout(mainLayout);
this->show();
}
ostrzeżenie:
D:\LearningQt\build-MySqlTables-Desktop_Qt_6_1_2_MSVC2019_64bit-Debug\debug\main.obj:-1: warning: LNK4042: obiekt okrelono wi©cej niľ raz; dodatkowe wystĄpienia zostay zignorowane
błąd 1:
deleteframe.obj:-1: error: LNK2001: nierozpoznany symbol zewn©trzny "public: virtual struct QMetaObject const * __cdecl DeleteFrame::metaObject(void)const " (?metaObject@DeleteFrame@@UEBAPEBUQMetaObject@@XZ)
błąd 2:
deleteframe.obj:-1: error: LNK2001: nierozpoznany symbol zewn©trzny "public: virtual void * __cdecl DeleteFrame::qt_metacast(char const *)" (?qt_metacast@DeleteFrame@@UEAAPEAXPEBD@Z)
błąd 3:
deleteframe.obj:-1: error: LNK2001: nierozpoznany symbol zewn©trzny "public: virtual int __cdecl DeleteFrame::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@DeleteFrame@@UEAAHW4Call@QMetaObject@@HPEAPEAX@Z)
bład 4:
D:\LearningQt\build-MySqlTables-Desktop_Qt_6_1_2_MSVC2019_64bit-Debug\debug\MySqlTables.exe:-1: error: LNK1120: liczba nierozpoznanych element˘w zewn©trznych: 3