只有繼承了QObject類或QObject的子類,才具有信號槽的能力。
class A: public QObject
{
Q_OBJECT
public:
A();
virtual ~A();
signals:
void Signal_Function();
public slots:
void Slot_Function();
};
繼承了QObject類或QObject的類,都應該在第一行代碼寫上Q_OBJECT。
如果你最開始沒有加,編譯後又加了,就會出現錯
undefined reference to `vtable for A::Signal_Function'
undefined reference to `vtable for A::Slot_Function'
這個時候刪除所有編譯產生的文件,然後重新構建和編譯(注意:只是點擊重新構建按鈕是不行的)