Всем привет! Помогите пожалуйста разобраться с проблемой... Есть класс-наследник от QwtPlot. Добавляю кнопку и делаю ее сыном этого класса-наследника. Далее нужно ловить нажатия на нее. Соединил нужный сигнал со слотом, но ф-я connect возвращает false. Решил что это из-за того, что в начале капсулы моего класса не объявил макрос Q_OBJECT. Как только это делаю, получаю ошибку
class CSpectrViewer : public QwtPlot
{
Q_OBJECT
.....
Rocky,
нужны оперделения классав.
какие инклюды пишешь?
возможно у тебя такая же проблема как http://www.prog.org.ru/index.php?topic=8939.msg50234#msg50234
После добавления Q_OBJECT надо чистить проект и делать qmake && make.
Qwt не знаю, поэтому вопрос - QwtPlot является наследником QObject?
Вот взял мастером добавил новый класс.
//buf.h
#ifndef BUF_H
#define BUF_H
#include <qwt_plot.h>
class buf : public QwtPlot
{
Q_OBJECT
public:
buf(QWidget *parent);
~buf();
private:
};
#endif // BUF_H
//buf.cpp
#include "buf.h"
buf::buf(QWidget *parent) : QwtPlot(parent)
{
}
buf::~buf()
{
}
class QWT_EXPORT QwtPlot: public QFrame, public QwtPlotDict
{
Q_OBJECT
.......
explicit QwtPlot(QWidget * = NULL);
explicit QwtPlot(const QwtText &title, QWidget *p = NULL);
..........
};
Такчто QwtPlot является наследником QObject точно...
kwisp, я нигде не нашел чтоб генерились файлы *.moc.... странно.. но все равно у меня вряд ли то, потому что класс объявлен в отдельном и точно неповторяющемся хидере (
--------
UPD
усе, разобралси =)
помог этот тред
http://www.archivum.info/qt-interest@trolltech.com/2007-08/00380/Re-LNK2001-unresolved-external-symbol-quot-public-static-struct-QMetaObject--const-QwtPlot-staticMetaObject-quot.html
решение - забыл добавить определение препроцессору QWT_DLL =)
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)