crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Ошибка компоновки из-за макроса Q_OBJECT (при сабклссинге QwtPlot)
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Rocky Дата 24.9.2010, 17:40
  Такчто QwtPlot является наследником QObject точно...

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

--------
UPD

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

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

решение - забыл добавить определение препроцессору QWT_DLL =)
Рокки Дата 24.9.2010, 17:27
  Вот взял мастером добавил новый класс.
//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);
..........
};
MoPDoBoPoT Дата 24.9.2010, 17:10
  После добавления Q_OBJECT надо чистить проект и делать qmake && make.
Qwt не знаю, поэтому вопрос - QwtPlot является наследником QObject?
kwisp Дата 24.9.2010, 16:59
  Rocky,
нужны оперделения классав.
какие инклюды пишешь?

возможно у тебя такая же проблема как тут
Rocky Дата 24.9.2010, 14:28
  Всем привет! Помогите пожалуйста разобраться с проблемой... Есть класс-наследник от 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). Из-за чего возникает ошибка?

Спасибо)
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 5.7.2025, 7:14