crossplatform.ru

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


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

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

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


Последние 10 сообщений [ в обратном порядке ]
ViGOur Дата 16.4.2008, 7:54
  1. Использовать макрос Q_OBJECT можно в классах производных от QObject, прямо или косвенно.
2. Объявление и определения класса должно находится в разных файлых, в *.h и *.cpp соответственно.

Посмотри по всем условиям удовлетворяет твой класс?
Если по всем и всеравно такая ошибка, попробуй в студии сделать Clean Solution, а потом снова скомпилить.
AD Дата 15.4.2008, 17:47
 
Цитата(Litkevich Yuriy @ 15.4.2008, 18:42) *
попробуй makefile по новой сделать, если ты им пользуешся.

Так я ведь студией компилирую.
Litkevich Yuriy Дата 15.4.2008, 17:42
  попробуй makefile по новой сделать, если ты им пользуешся.
AD Дата 15.4.2008, 17:37
 
Цитата(Litkevich Yuriy @ 15.4.2008, 18:31) *
т.е. макрос в файле main.cpp отсутствует и такую ошибку дает?

в файле main.cpp макроса Q_OBJECT нету! Но есть в файле GraphicDisplay.h
Litkevich Yuriy Дата 15.4.2008, 17:31
  т.е. макрос в файле main.cpp отсутствует и такую ошибку дает?
AD Дата 15.4.2008, 17:16
 
Цитата(Litkevich Yuriy @ 15.4.2008, 18:01) *
если все делаешь в одном файле, например main.cpp,
то нужно воткнуть такую строку:
#include "main.moc"

я в стречал ее в конце файла, это у Шлее, и перед функцией main, это у Тролей

Файлы разные!
Litkevich Yuriy Дата 15.4.2008, 17:07
  вот у Макса пример
CODE

/* ======================================================================
** main.cpp
** ======================================================================
**
** ======================================================================
** Copyright © 2007 by Max Schlee
** ======================================================================
*/

#include <QtGui>

// ======================================================================
class MyThread : public QThread {
Q_OBJECT
private:
int m_nValue;

public:
MyThread() : m_nValue(10)
{
}

void run()
{
QTimer timer;
connect(&timer, SIGNAL(timeout()), SLOT(slotNextValue()));
timer.start(1000);

exec();
}

signals:
void finished ( );
void currentValue(int);

public slots:
void slotNextValue()
{
emit currentValue(--m_nValue);

if (!m_nValue) {
emit finished();
}

}
};

// ----------------------------------------------------------------------
int main(int argc, char** argv)
{
QApplication app(argc, argv);
QLCDNumber lcd;
MyThread thread;

QObject::connect(&thread, SIGNAL(currentValue(int)),
&lcd, SLOT(display(int))
);
QObject::connect(&thread, SIGNAL(finished()),
&app, SLOT(quit())
);

lcd.setSegmentStyle(QLCDNumber::Filled);
lcd.display(10);
lcd.resize(220, 90);
lcd.show();
thread.start();

return app.exec();
}

#include "main.moc"

Файл проекта, без особенностей:
TEMPLATE     = app
SOURCES         = main.cpp
win32:TARGET = ../ThreadTimer
Litkevich Yuriy Дата 15.4.2008, 17:01
  если все делаешь в одном файле, например main.cpp,
то нужно воткнуть такую строку:
#include "main.moc"

я в стречал ее в конце файла, это у Шлее, и перед функцией main, это у Тролей
AD Дата 15.4.2008, 16:45
 
Цитата(Litkevich Yuriy @ 15.4.2008, 17:15) *
класс содержащий макрос Q_OBJECT, должен быть в отдельном, от функции main, файле, либо нужно в конце файла приинклюдить MOC'ий заголовочный файл, но я так не пробывал.

Иногда помогает очистить все генерируемые файлы и повторно воспользоваться qmake.

А какой moc-й заголовочный файл нужен? Пересобрать попытался, не помогло!
Litkevich Yuriy Дата 15.4.2008, 16:15
  класс содержащий макрос Q_OBJECT, должен быть в отдельном, от функции main, файле, либо нужно в конце файла приинклюдить MOC'ий заголовочный файл, но я так не пробывал.

Иногда помогает очистить все генерируемые файлы и повторно воспользоваться qmake.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 10.4.2020, 12:25