• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Nie mogę użyć Q_OBJECT w klasie.

0 głosów
43 wizyt
pytanie zadane 14 października w C i C++ przez tonn204 Mądrala (6,680 p.)

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 okre˜lono wi©cej niľ raz; dodatkowe wystĄpienia zostaˆy 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

 

komentarz 14 października przez TOM_CPP Pasjonat (19,260 p.)
komentarz 14 października przez tonn204 Mądrala (6,680 p.)
Dzięki pomogło.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

+1 głos
2 odpowiedzi 61 wizyt
pytanie zadane 23 września w C i C++ przez tonn204 Mądrala (6,680 p.)
0 głosów
1 odpowiedź 109 wizyt
0 głosów
1 odpowiedź 133 wizyt
pytanie zadane 5 czerwca 2019 w C i C++ przez fennec Nowicjusz (160 p.)
Porady nie od parady
Zadając pytanie postaraj się o poprawną pisownię i czytelne formatowanie tekstu.Kompozycja

85,253 zapytań

134,062 odpowiedzi

297,274 komentarzy

56,338 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...