Russian Qt Forum
Ноябрь 25, 2024, 05:51 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: конфликт qt.h и qobject.h  (Прочитано 4988 раз)
StogovOleg
Гость
« : Ноябрь 15, 2008, 14:38 »

Добрый день.

Провожу следующий эксперимент.
Создаю проект графического приложения. Подключаю к файлу *.ui.h формы заголовочный файл в котором написано следующее:
Код:
#include <qt.h>
#include <qobject.h>

class MyClass : public QObject
{
    Q_OBJECT
    public:
    MyClass();
};

запускаю и получаю кучу ошибок, если я выношу описание функции и класса в файл *.ui.h формы то все успешно работает.
В чем причина?

P.S. qt-3.3.3
Записан
Rcus
Гость
« Ответ #1 : Ноябрь 15, 2008, 15:03 »

В списке заголовочных файлов Qt 3.3 нет qt.h
http://doc.trolltech.com/3.3/headers.html
Записан
StogovOleg
Гость
« Ответ #2 : Ноябрь 15, 2008, 15:23 »

а файл есть, в нем определяется макрос QT_H
и что только что интересное заметил: файл qaccel.h

Код:
#ifndef QT_H
#include "qobject.h"
#include "qkeysequence.h"
#endif // QT_H

что за несовместимость и где про это написано?
Записан
Rcus
Гость
« Ответ #3 : Ноябрь 15, 2008, 16:50 »

В списке заголовочных файлов библиотеки его нет, зачем вы включаете его напрямую в свой код?
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #4 : Ноябрь 15, 2008, 18:33 »

В списке заголовочных файлов Qt 3.3 нет qt.h

в описании нет, но файл такой есть в папке QTDIR/include.

Вопрос автору темы: непойму, зачем его подключать? В этом файле включены все инклуды библиотеки Qt. Это дурной стиль инклюдить все подряд ради одного QObject
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
StogovOleg
Гость
« Ответ #5 : Ноябрь 23, 2008, 21:20 »

Прошу прощения, давно не подходил к инету. Согласен про дурной стиль, но человек, который обучал qt объяснил, что qt.h нужен для подключения макроса Q_EXPORT. Сейчас знаю, что он описан в qglobal.h, но я не могу понять почему происходит то, что я описал в первом сообщении. Почему макрос Q_OBJECT не хочет находится в одном файле со строкой "#include <qt.h>"?
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #6 : Ноябрь 24, 2008, 12:03 »

Чесно сказате проблема несовсем понятна. Приаттач своей проект, посмотрим
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.147 секунд. Запросов: 23.