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

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

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: добавление GraphicsItem на сцену  (Прочитано 11455 раз)
finka
Гость
« Ответ #15 : Октябрь 02, 2007, 10:23 »

vaprele07 , я, честно говоря, не могу понять, почему число добавленных в сцену итемов и число элементов в списке может не совпадать. Хотя, должна сказать, у меня уже был какой-то глюк при обращении к элементам списка через итератор, но тогда я просто плюнула на итератор, обращалась к элементам напрямую и благополучно забыла и забила на это дело. А тут вот опять.

pastor , полный код выложить не могу, но если вы поверите на слово, то скажу, что там ничего интересного нет:) Парочка лишних полей, которые инициализируются в конструкторе.

Qt 4.3.1 под VS2005.
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #16 : Октябрь 02, 2007, 10:34 »

2 finka: Хотелось бы увидеть ваш код, скомпилить его у себя и пронаблюдать эту проблему. Может проблема ваще не в этом месте
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
vaprele07
Гость
« Ответ #17 : Октябрь 02, 2007, 11:04 »

finka, в цикле в самом первом коде обращение идет не к самому спуску на прямую, а к функции которая этот список формирует, в итоге у вас iter возможно сравнивается не с тем end()
сделай хоть вот так:
Код:
QList<QGraphicsItem *> items = scene->items();
for (iter = items.begin(); iter != items.end(); iter++)

вот как выглядит функция QGraphicsScene::items() в QT4.3.0:
Код:
QList<QGraphicsItem *> QGraphicsScene::items() const
{
    ...

    // Rebuild the list of items to avoid holes. ### We could also just
    // compress the item lists at this point.
    QList<QGraphicsItem *> itemList;
    foreach (QGraphicsItem *item, d->indexedItems + d->unindexedItems) {
        if (item)
            itemList << item;
    }
    return itemList;
}
сразу видно что у меня ваш код генерировал бы ошибку   В замешательстве делайте выводы...
Записан
finka
Гость
« Ответ #18 : Октябрь 02, 2007, 11:15 »

vaprele07, спасибо, как только соберу проект, попробую. Действительно, стормозила.
Записан
finka
Гость
« Ответ #19 : Октябрь 02, 2007, 11:22 »

Кстати, чтобы не открывать очередную тему по VS2005, задам тут вопрос:
Ставила все по инструкции с этой ссылки http://qtnode.net/wiki?title=Qt4_with_Visual_Studio#Obtain_and_install_the_Qt_source
Собираю проект:
qmake -project -t vcapp -o projectName.pro
qmake
Появляются ворнинги:
Warning: Failure to find: c:\...\sample.h
Warning: Failure to find: c:\...\sample.cpp
Warning: Failure to find: c:\...\sample.h
Warning: Failure to find: c:\...\sample.cpp

Причем файлы sample.h и sample.cpp существуют и находятся в той же директории, в которой я собираю проект, а также присутствуют в projectName.pro. Может это слово sample какое-то особенное?

Кстати, несмотря на эти ворнинги, все компилируется и работает потом нормально.

vaprele07 , спасибо, теперь все работает, как надо:)
« Последнее редактирование: Октябрь 02, 2007, 13:24 от finka » Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


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