Название: Передача QHash<QString, QString> через слот Отправлено: akaMDA от Июль 18, 2012, 15:00 Хочу передать QHash<QString, QString> через слот. Просто так не берет - надо регистировать. Однако не удается скормить Q_DECLARE_METATYPE(QHash<QString, QString>) - возникают ошибки. Как это сделать?
Название: Re: Передача QHash<QString, QString> через слот Отправлено: mutineer от Июль 18, 2012, 15:04 Цитировать Adding a Q_DECLARE_METATYPE() makes the type known to all template based functions, including QVariant. Note that if you intend to use the type in queued signal and slot connections or in QObject's property system, you also have to call qRegisterMetaType() since the names are resolved at runtime. Ну и ошибки прочитать неплохо быНазвание: Re: Передача QHash<QString, QString> через слот Отправлено: akaMDA от Июль 18, 2012, 15:08 я вызывыю qRegisterMetaType(). Ошибки происходят до компиляции - Qt creator требует ; после Q_DECLARE_METATYPE(QHash<QString, QString>) Ставлю - тебует после Q_DECLARE_METATYPE
Название: Re: Передача QHash<QString, QString> через слот Отправлено: mutineer от Июль 18, 2012, 15:09 покажи кусок кода и сами ошибки
Название: Re: Передача QHash<QString, QString> через слот Отправлено: akaMDA от Июль 18, 2012, 15:13 Код: файл .h Код: файл cpp Ошибки происходят до компиляции - Qt creator требует ; после Q_DECLARE_METATYPE(QHash<QString, QString>) Ставлю - тебует после Q_DECLARE_METATYPE Название: Re: Передача QHash<QString, QString> через слот Отправлено: mutineer от Июль 18, 2012, 15:16 ошибки до компиляции? это как?
и попробуй не передавать в qRegisterMetaType строку Название: Re: Передача QHash<QString, QString> через слот Отправлено: Igors от Июль 18, 2012, 15:20 Код
Название: Re: Передача QHash<QString, QString> через слот Отправлено: akaMDA от Июль 18, 2012, 15:22 тьфу, туплю.
Ошибки - error: C2976: too few template arguments error: C2143: syntax error : missing ';' error: C3203: class template invalid as template argument for template parameter , expected a real type error: C2955: use of class template requires template argument Название: Re: Передача QHash<QString, QString> через слот Отправлено: akaMDA от Июль 18, 2012, 15:26 Код: typedef QHash <QString, QString> TSHash; Помогло, спасибо! |