我是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() {
}