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 чтоб в итоге получать
в шаблоне отступ относительно предыдущего элемента.
мб есть какиенибудь стандартные фичи для такой сортировки?
если нет.. подскажите как мне это сделать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
ViGOur
  опции профиля:
сообщение 12.12.2008, 13:08
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

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




Репутация:   40  


Ты когда-нибудь сортировку реализовавыл сам руками? Это чисто для информации, чтобы знать...
Где ты данный код выполняешь?
Как вызываешь?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
genusatplay
  опции профиля:
сообщение 12.12.2008, 22:35
Сообщение #3


Студент
*

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

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




Репутация:   0  


Цитата(ViGOur @ 12.12.2008, 13:08) *
Ты когда-нибудь сортировку реализовавыл сам руками? Это чисто для информации, чтобы знать...
Где ты данный код выполняешь?
Как вызываешь?

этот код выполняется в слоте сохранения шаблона в mainwindow'е моем, после сортировки идет выгрузка в xml
вызываю при срабатывании действия сохранения в меню
да писал, у меня самый любимый способ сортировки такой:
Раскрывающийся текст
// Language C#
using System;
using System.Collections.Generic;
using System.Text;
using System.Globalization;
using System.Threading;



namespace laba
{
class Program
{
static void Main(string[] args)
{
int buf;
int i,j,n;
Boolean qwe;
qwe = true;

Console.WriteLine("Введите размерность массива");
n = int.Parse(Console.ReadLine());
int[] a = new int[n];

for (i = 0; i < n; i++)
{
Console.WriteLine("Введите {0:d} элемент массива", i);
a[i] = int.Parse(Console.ReadLine());
}

Console.WriteLine("---------");
for (int k = 0; k < a.Length; k++)
{ Console.WriteLine(a[k]); }
Console.WriteLine("---------");

DateTime dtb = DateTime.Now; //datetime before
CultureInfo ci = new CultureInfo("de-DE");



while (qwe)
{
Random randObj = new Random();
i = randObj.Next(a.Length);
j = randObj.Next(a.Length);

buf = a[j];
a[j] = a[i];
a[i] = buf;

int f = 0;
for (int h = 0; h < a.Length - 1; h++)
{
if (a[h] > a[h + 1]) { f = f + 1; }
}
if (f > 0 ) { qwe = true;}
else { qwe = false; }

}

DateTime dta = DateTime.Now; //datetime after
DateTime time = DateTime.Now;
long vrema;
//time = dta.Millisecond - dtb.Millisecond;

Console.WriteLine("Время работы программы {0:d} миллисекнуд.",vrema.ToString());
Console.WriteLine(vrema.ToString());
Console.WriteLine(time.ToString("d", ci));

for (int k = 0; k < a.Length; k++)
{ Console.WriteLine(a[k]); }
Console.ReadKey();
}
}
}

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

Сообщение отредактировал genusatplay - 12.12.2008, 22:38
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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




RSS Текстовая версия Сейчас: 28.12.2024, 18:08