Ребят, может кто сталкивался с проблемой?
Создаю класс на основе существующего QTreeWidget, все вроде хорошо, но если пытаюсь зарегистрировать свой сигнал, при компиляции получаю ошибку:
:-1: error: symbol(s) not found for architecture x86_64
:-1: error: collect2: ld returned 1 exit status
Поиск показал что MOC не хочет «встраивать» cвой код, но с другой стороны пишут что при использовании qmake и задании в коде Q_OBJECT все должно работать..
Подскажите пожалуйста, в чем грабли и как правильно?
код элементарный:
#ifndef MYTREELIST_H
#define MYTREELIST_H
#include <QObject>
#include <QTreeWidget>
#include <QDragMoveEvent>
#include <QDragLeaveEvent>
#include <QTreeWidgetItem>
class myTreeList : public QTreeWidget
{
Q_OBJECT
public:
myTreeList();
~myTreeList();
protected:
void dropEvent(QDropEvent *e);
signals:
void itemWasMoved(QTreeWidgetItem*, QTreeWidgetItem*);
};
#endif // MYTREELIST_H
#include "mytreelist.h"
#include <QDebug>
#include <QDragEnterEvent>
myTreeList::myTreeList()
{
}
myTreeList::~myTreeList()
{
}
void myTreeList::dropEvent(QDropEvent *e)
{
QTreeWidgetItem *pitem;
pitem=currentItem();
qDebug()<<"drop event: "<<currentItem()->text(0);
QTreeWidget::dropEvent(e);;
qDebug()<<"drop event end: "<<currentItem()->text(0);
emit itemWasMoved(pitem,currentItem());
}
Естественно если в коде убираю строку
emit itemWasMoved(pitem,currentItem());
то все компилируется на ура.. Но мне нужно генерировать событие при перемещении элемента.