сортировка элементов Сцены |
Здравствуйте, гость ( Вход | Регистрация )
сортировка элементов Сцены |
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 |
Ты когда-нибудь сортировку реализовавыл сам руками? Это чисто для информации, чтобы знать... Где ты данный код выполняешь? Как вызываешь? этот код выполняется в слоте сохранения шаблона в 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 |
|
|
Текстовая версия | Сейчас: 28.12.2024, 18:08 |