Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Ошибка компоновки из-за макроса Q_OBJECT (при сабклссинге QwtPlot)
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Общие вопросы
Rocky
Всем привет! Помогите пожалуйста разобраться с проблемой... Есть класс-наследник от QwtPlot. Добавляю кнопку и делаю ее сыном этого класса-наследника. Далее нужно ловить нажатия на нее. Соединил нужный сигнал со слотом, но ф-я connect возвращает false. Решил что это из-за того, что в начале капсулы моего класса не объявил макрос Q_OBJECT. Как только это делаю, получаю ошибку
Цитата
moc_SpectrViewer.obj : error LNK2001: неразрешенный внешний символ ""public: static struct QMetaObject const QwtPlot::staticMetaObject" (?staticMetaObject@QwtPlot@@2UQMetaObject@@B)"
F:\CurrentProjects\RTCalculator\Debug\RTCalculator.exe : fatal error LNK1120: 1 неразрешенных внешних элементов


class CSpectrViewer : public QwtPlot
    {
        Q_OBJECT

.....


Сам moc_SpectrViewer.cpp нормально генерируется, включен в проект (исп. VS 2008, qt 4.6.2). Из-за чего возникает ошибка?

Спасибо)
kwisp
Rocky,
нужны оперделения классав.
какие инклюды пишешь?

возможно у тебя такая же проблема как тут
MoPDoBoPoT
После добавления 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()
{

}

Больше вообще ничего не сделал. Такая же ошибка.. если Q_OBJECT закоментировать - то линкуется... А так - нет. moc_buf.cpp генерируется... QwtPlot объявлен так
class QWT_EXPORT QwtPlot: public QFrame, public QwtPlotDict
{
    Q_OBJECT
.......  
    explicit QwtPlot(QWidget * = NULL);
    explicit QwtPlot(const QwtText &title, QWidget *p = NULL);
..........
};
Rocky
Такчто QwtPlot является наследником QObject точно...

kwisp, я нигде не нашел чтоб генерились файлы *.moc.... странно.. но все равно у меня вряд ли то, потому что класс объявлен в отдельном и точно неповторяющемся хидере (

--------
UPD

усе, разобралси =)

помог этот тред
http://www.archivum.info/qt-interest@troll...bject-quot.html

решение - забыл добавить определение препроцессору QWT_DLL =)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2021 IPS, Inc.