crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> QMAP, не помещаются элементы
losev
  опции профиля:
сообщение 6.1.2008, 12:26
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 10
Регистрация: 15.12.2007
Пользователь №: 47

Спасибо сказали: 0 раз(а)




Репутация:   0  


у меня такая проблема, елементы не помешаются в QMAP хотя они есть:

суть такая есть поле (QGraphicsScene) на нем изображаются элементы (подразумевается графическое представление коммутаторов)
между собой они соединены линиями, так вот всю эту карту нужно сохранять в файл, с коммутаторами проблем не было а вот
со стрелочками возникли.
Каждый коммутатор на карте имеет свой уникальный ID, стрелочки строятся по такому алгоритму
startId и до endId те в цифровом эквиваленте грубо говоря координаты стрелок к примеру
1-2
1-4
1-5
2-5
те стрелка ведется от коммуттора с ИД равным 1 и к 2 и тд
в QMap я сохраняю сответсвенно эти идентификаторы
QMap <ИД_начального_коммутатора,ИД_конечного_коммутатора>,
так вот при обходе цикла foreach по всем элементам поля идентификаторы выдаются как надо
но почему то в QMAP они все не сохроняются
вот данные из консоли:
--------------------------------------------------------
ARROW LIST обход цикла foreach для поиска идентификаторов стрелок
1 - 2
1 - 3
1 - 4
2 - 4
4 - 3
key=1 value=4
key=2 value=4
key=4 value=3
те мы видим количество стрелок 5 при обходе foreach а в QMAP их всего 3 записи !
или я не понимаю логику работы QMAP или какая то магическая ошибка )))
---------------------------------------------------------
 QMap <int,int>ArrowList;

  cout<<"ARROW LIST обход цикла foreach для поиска идентификаторов стрелок\n";

    foreach (QGraphicsItem *item,Map->items())
     {
        if (item->type()==Arrow::Type)
         {
          ArrowList.insert(qgraphicsitem_cast<Arrow*>(item)->startItem()->retId(),
                           qgraphicsitem_cast<Arrow *>(item)->endItem()->retId()
                          );
             cout<<qgraphicsitem_cast<Arrow*>(item)->startItem()->retId()<<" - ";

             cout<<qgraphicsitem_cast<Arrow*>(item)->endItem()->retId()<<"\n";
         }
      }

..........................................
      QMap<int,int>::const_iterator it = ArrowList.constBegin();
      while (it != ArrowList.constEnd())
      {
              cout <<"key="<<it.key()<<" "<<"value="<<it.value()<<"\n";
              it++;
      }


Сообщение отредактировал Сафи - 6.1.2008, 12:43
Причина редактирования: добавлен тэг [code]
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


5 чел. читают эту тему (гостей: 5, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 20.12.2024, 21:46