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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [qt-4.2] Q_DECLARE_METATYPE( QFileInfo ) где прописывать ?  (Прочитано 6116 раз)
izoomer
Гость
« : Январь 14, 2007, 14:31 »

Где нужно прописывать данную диррективу ?
есть три файла заголовочных для трех классов.
Если прописываю в каждом загловочном файле то пишет что
    previous definition of `struct QMetaTypeId<QFileInfo>'
если убираю в одном из файлов и оставляю толь ков одном файле, то пишет что:
 error: 'struct
   QMetaTypeId<QFileInfo>' has no member named 'qt_metatype_id'

то есть нет определения метатипа.
куда нужно вставлять то эту директиву что бы все виделось ?!
Записан
Dendy
Гость
« Ответ #1 : Январь 14, 2007, 14:45 »

Асистант.

Ideally, this macro should be placed below the declaration of the class or struct. If that is not possible, it can be put in a private header file which has to be included every time that type is used in a QVariant.
Записан
izoomer
Гость
« Ответ #2 : Январь 14, 2007, 14:50 »

ну так и вставляю каждй раз в конце каждого заголовочного файла, где использую QVariant с QFileInfo - и ругается что уже определено, а как только уберу то пишет что нет определения
Записан
Dendy
Гость
« Ответ #3 : Январь 14, 2007, 15:10 »

С++ матчасть хромает. Естественно препроцессор увидит повторньІй макрос при компиляции ОДНОГО cpp файла. Именно поетому существуют:

Код:
#ifndef A_H
#define A_H
..
#endif

Код:
#pragma once


Нужно так:

Код:
// fileinfo_p.h
#pragma once

#include <QFileInfo>
Q_DECLARE_METATYPE( QFileInfo )


И в каждом cpp, что юзает кастинг QVariant в сей или из сего типа включать fileinfo_p.h.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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