crossplatform.ru

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


  Ответ в наследование с Q_OBJECT
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

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


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 28.12.2009, 18:30
 
Цитата(quarz @ 28.12.2009, 21:25) *
кнопка CODEBOX
такой кнопки вообще нет

Вот кнопка "Код" -

А за codebox, нужно лезть в список "спец. элементы", который доступен только в форме полного ответа.
В форме быстрого ответа этот список отсутствует, а вот кнопка "код" есть.
quarz Дата 28.12.2009, 18:25
 
Цитата(Litkevich Yuriy @ 17.12.2009, 17:17) *
как же новички любят далеко лазить за тэгом CODEBOX, когда кнопка code ближе


Еще бы, когда кнопка CODEBOX намного более заметная ;)
Litkevich Yuriy Дата 17.12.2009, 17:17
  как же новички любят далеко лазить за тэгом CODEBOX, когда кнопка code ближе
quarz Дата 17.12.2009, 14:32
  Верно, спасибо большое! Ночью соображалка не сработала (( Только потом дошло что надо наследоваться сначала от QObject, а то при попытке
class DivScaleDraw: public QwtScaleDraw, public QObject

ессно возникала ошибка.
sploid Дата 17.12.2009, 11:46
  надо так:
class DivScaleDraw: public QObject, public QwtScaleDraw
Litkevich Yuriy Дата 17.12.2009, 10:05
 
Цитата(quarz @ 17.12.2009, 3:14) *
QwtScaleDraw
наследник QwtAbstractScaleDraw.
А QwtAbstractScaleDraw - это самостоятельный класс, у него нет базового класса
BRE Дата 17.12.2009, 7:44
  Так а где наследование от QObject?
Просто вписать Q_OBJECT не достаточно.
quarz Дата 17.12.2009, 0:14
  Свой класс наследую от класса без Q_OBJECT.
В своем классе определяю Q_OBJECT и пытаюсь вещать сигналы. Получаю следующие ошибки:
Раскрывающийся текст

1>Compiling...
1>graphscaledraw.cpp
1>Compiling...
1>moc_graphscaledraw.cpp
1>.\GeneratedFiles\debug - usermode\moc_graphscaledraw.cpp(42) : error C2039: 'staticMetaObject' : is not a member of 'QwtScaleDraw'
1> C:\qwt-5.2.0\src\qwt_scale_draw.h(30) : see declaration of 'QwtScaleDraw'
1>.\GeneratedFiles\debug - usermode\moc_graphscaledraw.cpp(56) : error C2039: 'qt_metacast' : is not a member of 'QwtScaleDraw'
1> C:\qwt-5.2.0\src\qwt_scale_draw.h(30) : see declaration of 'QwtScaleDraw'
1>.\GeneratedFiles\debug - usermode\moc_graphscaledraw.cpp(61) : error C2039: 'qt_metacall' : is not a member of 'QwtScaleDraw'
1> C:\qwt-5.2.0\src\qwt_scale_draw.h(30) : see declaration of 'QwtScaleDraw'
1>.\GeneratedFiles\debug - usermode\moc_graphscaledraw.cpp(77) : error C2665: 'QMetaObject::activate' : none of the 4 overloads could convert all the argument types
1> c:\qt\4.5.0\include\qtcore\../../src/corelib/kernel/qobjectdefs.h(334): could be 'void QMetaObject::activate(QObject *,int,int,void **)'
1> c:\qt\4.5.0\include\qtcore\../../src/corelib/kernel/qobjectdefs.h(335): or 'void QMetaObject::activate(QObject *,const QMetaObject *,int,void **)'
1> while trying to match the argument list '(DivScaleDraw *const , const QMetaObject *, int, int)'
1>Build log was saved at "file://d:\Исходники\Работа\XIDC\XILab\debug - usermode\BuildLog.htm"
1>XILab - 4 error(s), 0 warning(s)


Вот код:
class DivScaleDraw: public QwtScaleDraw
{
    Q_OBJECT
public:
        .....
signals:
    void firstScaleChanged();
}.


Как я понял компилятор возмущается что в классе-родителе (QwtScaleDraw) нет Q_OBJECT и следовательно в нем нет 'staticMetaObject', 'qt_metacast', и т.д. Если все так, проблема имеет решение?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 14:45