crossplatform.ru

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


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

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

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


Последние 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 Рейтинг@Mail.ru Текстовая версия Сейчас: 5.7.2025, 5:35