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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QVariantMap в stream(QByteArray) ошибка WriteFailed  (Прочитано 2345 раз)
vaansk
Гость
« : Октябрь 11, 2013, 20:34 »

Хочу добавить QVariant m в QDataStream &stream:

Код:
  friend QDataStream &operator <<(QDataStream &stream, MainList &list)
  { 
    QVariantMap m;

    // Добавляем количество элементов
    m.insert("COUNT", list.items.size());

    // Добавляем все элементы
    int counter = 0;
    for (auto it = list.items.begin(); it != list.items.end(); ++it)
    {
      for (int j = 0; j < COL_COUNT; j++)
      {
        QString key = QString(counter);
        m.insert(key, it->Data[j]);
        counter++;
      }
    }
    stream << m; 
    return stream; 
  };

однако после stream << m, в stream q_status = WriteFailed
В чем косяк?
Записан
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #1 : Октябрь 12, 2013, 20:12 »

Могу предположить что поток не знает как в него записать ваш конкретный вариант. Скорее всего нужно переопределить оператор потока << для вашего конкретного случая или же явно в поток писать POD типы, т.е. если вы знаете что в вашем variantMap- находятся пары string:string то так и пишите. Да, скорее всего нужно переопределить также оператор >>. А вообще я бы воздержался от такого подхода, в поток лучше писать конкретные и явные типы.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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