crossplatform.ru

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

> сортировка элементов Сцены
genusatplay
  опции профиля:
сообщение 11.12.2008, 14:32
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 50
Регистрация: 8.11.2008
Пользователь №: 416

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




Репутация:   0  


народ помогите плиз советом..
у меня есть QGraphicScene
на котором я создаю (class DiagramItem : public QGraphicsPolygonItem) в диаграм итеме храниться полигон и инфа(параметры)
я подобавлял на форму итемов, поредактил их
терь нада все сохранить в файл xml.. но вот в чем проблема..
итемы добавлялись в сцену в произвольном порядке.. мне нужно отсортировать их слева направа сверху вниз
по их координатам x,y относительно полотна
а потом выгрузить в файл и еще отнимать от Элемент_списка.x Предыдуший_элемент.x чтоб в итоге получать
в шаблоне отступ относительно предыдущего элемента.
мб есть какиенибудь стандартные фичи для такой сортировки?
если нет.. подскажите как мне это сделать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
genusatplay
  опции профиля:
сообщение 12.12.2008, 12:09
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 50
Регистрация: 8.11.2008
Пользователь №: 416

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




Репутация:   0  


чтото типа такого надо..
на код такой не ругается, но он и неработает
int icount = (diagramScene->items().count()-1);
for (int i=0; i < icount;i++ )
{
    for (int j=icount;j > i;j-- )
    {
        DiagramItem *ditem1 = qgraphicsitem_cast<DiagramItem *>(diagramScene->items().at(j-1));
        DiagramItem *ditem2 = qgraphicsitem_cast<DiagramItem *>(diagramScene->items().at(j));
        if ( ditem1->pos().y() > ditem2->pos().y() )
        {
            diagramScene->items().swap(j-1,j);
        }
    }
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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




RSS Текстовая версия Сейчас: 15.1.2025, 23:30