Название: Не работает Qhash со структурой Отправлено: phpCoder от Январь 01, 2015, 12:51 Добрый день.
Qt опять тупит... Значится есть в .h файле структура: Код: struct OrdersFields Код: QHash<QString, OrdersFields> _ordersFields; Код: ... D:\Soft\Qt\5.4\mingw491_32\include\QtCore\qhash.h:756: ошибка: no matching function for call to 'OrdersFields::OrdersFields()' return createNode(h, akey, T(), node)->value; ^ D:\Soft\Qt\5.4\mingw491_32\include\QtCore\qhash.h:756: candidates are: D:\Documents\Qt\project\project\OrdersEdit.cpp:1: In file included from ..\project\OrdersEdit.cpp:1:0: D:\Documents\Qt\project\project\OrdersEdit.h:24: OrdersFields::OrdersFields(const QString&, int, bool) OrdersFields(const QString &label, int width, bool isEditable = false) : label(label), width(width), isEditable(isEditable), index(0) {} ^ D:\Documents\Qt\project\project\OrdersEdit.h:24: note: candidate expects 3 arguments, 0 provided D:\Documents\Qt\project\project\OrdersEdit.h:18: OrdersFields::OrdersFields(const OrdersFields&) struct OrdersFields ^ D:\Documents\Qt\project\project\OrdersEdit.h:18: note: candidate expects 1 argument, 0 provided Что тут можно поделать? Название: Re: Не работает Qhash со структурой Отправлено: phpCoder от Январь 01, 2015, 13:05 А вот если использовать Qlist, то никаких ошибок нет...
Может Qhash и Qmap - это мусор?... Название: Re: Не работает Qhash со структурой Отправлено: Old от Январь 01, 2015, 13:09 Как только вы выучите С++, Qt тупить перестанет.
Название: Re: Не работает Qhash со структурой Отправлено: m_ax от Январь 01, 2015, 13:12 Цитировать Может Qhash и Qmap - это мусор?... Конечно мусор.. Вообще не понятно нафига их придумали, народ только зря смущают..) Название: Re: Не работает Qhash со структурой Отправлено: phpCoder от Январь 01, 2015, 13:40 Ну так как делать правильно надо?
Название: Re: Не работает Qhash со структурой Отправлено: lit-uriy от Январь 01, 2015, 14:00 Прочитай внимательно описание класса QHash, он предъявляет определённые требования к ключу и значению.
В частности требует оператора присваивания и функцию хэширования, а для некоторых методов ещё и конструктор по умолчанию. Цитировать QHash's key and value data types must be assignable data types (http://www.doc.crossplatform.ru/qt/4.6.x/containers.html#assignable-data-types). Название: Re: Не работает Qhash со структурой Отправлено: phpCoder от Январь 01, 2015, 14:14 По сравнению с ассоц. массивами из PHP, это...
Название: Re: Не работает Qhash со структурой Отправлено: phpCoder от Январь 01, 2015, 14:25 А этих контейнерах можно при вставке значений сохранить их нумерацию? Т.е.:
Код: QHash<QString, int> map; Далее когда обходишь элементы, то в дебаг они должны попадать в том порядке, в каком они были добавлены: Код: QHashIterator<QString, int> i(map); Название: Re: Не работает Qhash со структурой Отправлено: kambala от Январь 01, 2015, 16:23 нету здесь сохранения порядка гарантированного: мэп сортирует по ключу (оператор <), а хэш хранит в произвольном порядке.
|