Я новичок в Qt и пытаюсь создать собственный класс QSlider
(он наследуется от QSlider
).
Это прекрасно работает, но когда я пытаюсь создать новые сигналы и слоты, это не работает. На самом деле, я думаю, что это макрос Q_OBJECT
, который не работает ... Действительно, я получаю это сообщение от компилятора:
erreur : 1 duplicate symbol for architecture x86_64
erreur : linker command failed with exit code 1 (use -v to see invocation)
Если я удаляю Q_OBJECT
, это тоже не сработает, как говорят мне компиляторы:
erreur : Error: Class declaration lacks Q_OBJECT macro.
Наконец, если я наследую свой класс от QWidget
, все будет работать, даже макрос Q_OBJECT
...
Вот мой .h
код:
#include <QWidget>
#include <QSlider>
class mySlider : public QSlider
{
Q_OBJECT
public:
explicit mySlider();
signals:
void test();
public slots:
void nTest();
};
Вот мой .cpp
код (ничего особенного, сейчас я только пытаюсь заставить этот простой код работать):
#include "myslider.h"
mySlider::mySlider()
{
}
void mySlider::test(){
}
void mySlider::nTest() {
}