2

私は C++ /Qt プログラミングの初心者です。入力されたテキストが「bob」の場合、QLineEdit をチェックするこの単純なダイアログ ボックスを作成し、[OK] ボタンを有効にする必要があります。正常にコンパイルできません。次のようになります。

dialog.cpp|31|undefined reference to `Dialogmio::send()'

私は何を間違っていますか?

これは、dialog.h です。

//dialog.h
#ifndef DIALOG_H_INCLUDED
#define DIALOG_H_INCLUDED
#include <QDialog>

class QPushButton;
class QLineEdit;

class Dialogmio : public QWidget


{


public:
Dialogmio(QWidget *parent =0);

signals:
void send ();

public slots:
void recip(QString &text);


private:

QLineEdit *linedit;
QPushButton *buttonOK;


};

#endif

これはdialog.cppです:

//dialog.cpp
#include <QtGui>

#include "dialog.h"

Dialogmio::Dialogmio(QWidget *parent)
: QWidget(parent)
{

linedit = new QLineEdit();
buttonOK = new QPushButton("OK");
buttonOK->setEnabled(FALSE);


connect( linedit, SIGNAL( textChanged(const QString &) ), this, SLOT( recip(const QString &) ));
connect (this,SIGNAL( send()), this, SLOT( buttonOK->setEnabled(true)) );

QHBoxLayout *layout = new QHBoxLayout();
layout->addWidget(linedit);
layout->addWidget(buttonOK);
setLayout(layout);


}

void Dialogmio::recip(QString &text)
{
QString a = linedit->text();
if (a == "bob"){

emit send();   //here it gives me the error

}
}

これは main.cpp です:

#include <QApplication>
#include "dialog.h"


int main(int argc, char* argv[])
{
QApplication app(argc, argv);

Dialogmio *dialog = new Dialogmio;
dialog->show();

return app.exec();
}

提案どおりにマクロを挿入しましたQ_OBJECTが、7 行目にもう 1 つのエラーが表示されます。

dialog.cpp|7|undefined reference to `vtable for Dialogmio'|
4

1 に答える 1