LINUX.ORG.RU

не собирается QT


0

0

Создал небольшой текст со своим классом

-------------quit.h-----------

#ifndef QUIT_H #define QUIT_H

#include <qdialog.h>

class MyClass : public QObject { Q_OBJECT public: int b;

signals: void mysignal();

private slots: void myslot(); };

#endif

---------quit.cpp-----------

#include "quit.h"

void MyClass::mysignal() { b=5; }

void MyClass::myslot() {

emit mysignal(); }

-----------main.cpp------------

#include <qapplication.h> #include <qpushbutton.h>

#include "quit.h"

int main(int argc, char *argv[]) { QApplication app(argc, argv); QPushButton *button = new QPushButton("Quit", 0); MyClass myclass2; QObject::connect(button, SIGNAL(clicked()), &app, SLOT(quit())); // QObject::connect(&myclass2, SIGNAL(mysignal123()), // &app, SLOT(quit())); app.setMainWidget(button); button->show(); return app.exec(); }

И вот что-то не собирается говорит что multiple definition of 'MyClass::mysignal()' quit.o : firts defined here

Где грабли то ?

anonymous

сигналы реализовывать не нужно. Уберите строчку void MyClass::mysignal() { b = 5; }

Legioner ★★★★★
()
Ответ на: комментарий от rh9

Ну правильно, один метод в quit.o, второй в moc_quit.o, вот и ошибка выходит.

Legioner ★★★★★
()
Ответ на: комментарий от rh9

Всем спасибо, убрал определение сигнала и все заработало как надо

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.