Название: Миграция на Qt5 Отправлено: Dancing_on_water от Март 20, 2013, 17:57 Есть проектик, написанный на Qt4.8.4 и Qwt6. Решил я его мигрировать на Qt5. Надеялся все-более пройдет гладко, но нет.
В moc-файле вылетает на строчке Цитировать *reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< QVector<double>* >(); break; С криком: ../../../Qt5/qt-everywhere-opensource-src-5.0.1/qtbase/include/QtCore/../../src/corelib/kernel/qmetatype.h: In static member function 'static int QMetaTypeId2<T>::qt_metatype_id() [with T = QVector<double>*]': ../../../Qt5/qt-everywhere-opensource-src-5.0.1/qtbase/include/QtCore/../../src/corelib/kernel/qmetatype.h:643:44: instantiated from 'int qMetaTypeId(T*) [with T = QVector<double>*]' ../../../Qt5/qt-everywhere-opensource-src-5.0.1/qtbase/include/QtCore/../../src/corelib/kernel/qmetatype.h:656:29: instantiated from 'int qRegisterMetaType(T*) [with T = QVector<double>*]' moc_CoreAutoFocuserManual.cpp:146:88: instantiated from here ../../../Qt5/qt-everywhere-opensource-src-5.0.1/qtbase/include/QtCore/../../src/corelib/kernel/qmetatype.h:534:97: error: 'qt_metatype_id' is not a member of 'QMetaTypeId<QVector<double>*>' Есть ли более изящное решение, чем создавать хедер с набором Q_DECLARE_METATYPE() ? Название: Re: Миграция на Qt5 Отправлено: Vass от Март 20, 2013, 19:46 Посмотрите вот эту статью:
http://www.kdab.com/porting-from-qt-4-to-qt-5/ раздел "Missing Q_OBJECT macros and metatype cleanup" Похоже ваш случай Название: Re: Миграция на Qt5 Отправлено: Dancing_on_water от Март 20, 2013, 19:59 Да, именно это тот случай и похоже не остается других вариантов, кроме как для случаев типа QVectror<double>* создавать отдельный хедер, геморрой....
Чую вскоре у каждого программиста будет хедер с простыней Q_DECLARE_METATYPE() из стандартных типов. |