Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Qt]Создание QTreeWidget, Большое колличество данных 
:(
    Опции темы
kojot
Дата 7.6.2009, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 17.2.2007

Репутация: нет
Всего: нет



Всем здрасте.

Создаю QTreeWidgetItem cтандартным способом.
Примерный код:
Код

        LeftItem=new QTreeWidgetItem(ui->leftTreeWidget);
        LeftItem->setText(0, tr("Top"));
        //Metric
        {
            QTreeWidgetItem *lparentItem=new QTreeWidgetItem(LeftItem);
            lparentItem->setText(0, tr("parent"));
            QTreeWidgetItem *lchild1Item=new QTreeWidgetItem(lparentItem);
            lchild1Item->setText(0, tr("item1"));
            QTreeWidgetItem *lchild2Item=new QTreeWidgetItem(lparentItem);
            lchild2Item->setText(0, tr("item2"));
            QTreeWidgetItem *lchild3Item=new QTreeWidgetItem(lparentItem);
            lchild3Item->setText(0, tr("item3"));
            QTreeWidgetItem *lchild4Item=new QTreeWidgetItem(lparentItem);
            lchild4Item->setText(0, tr("item4"));
            ..............................................................
        }

Все хорошо, все работает.
Все дело в том, что таких childNItem'ов порядка 500. Тем более, что таких "деревьев" два (слева и справа).
Билд в релизе более 1МБ.
Можно ли как-то оптимизировать сей момент?
Спасибо.

Это сообщение отредактировал(а) kojot - 7.6.2009, 22:09
PM MAIL   Вверх
Cheloveck
Дата 7.6.2009, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: нет
Всего: 32



Хочешь сказать, ты 500 раз пишешь этот код? Тогда цикл юзай.

ЗЫ юзай тег 'код' для кода

Добавлено через 4 минуты и 52 секунды
Код

QString strings[] =
{
    "text1",
    "text2",
    .......
};

const int count = количество_айтемов;
QTreeWidgetItem *lparentItem;

for(int i = 0; i = count; i++)
{
    lparentItem = new QTreeWidgetItem(LeftItem);
    lparentItem->setText(0, strings[i]);
}

как-то так.


--------------------
user posted image
PM Jabber   Вверх
kojot
Дата 7.6.2009, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 17.2.2007

Репутация: нет
Всего: нет



Цитата(Cheloveck @ 7.6.2009,  21:49)
Хочешь сказать, ты 500 раз пишешь этот код? Тогда цикл юзай.

ЗЫ юзай тег 'код' для кода


По программе:
TopLevel'ов поряка 20
ChildLevel первого уровня от 1 до 10 в каждом TopLevel
ChildLevel второго уровня от 10 до 100 в каждом ChildLevel первого уровня.
Одинаковых нет - все разные.
Как заполнить QTreeWidgetItem с помощью цикла?

Это сообщение отредактировал(а) kojot - 7.6.2009, 22:09
PM MAIL   Вверх
SABROG
Дата 7.6.2009, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Цитата(kojot @  7.6.2009,  21:42 Найти цитируемый пост)
Билд в релизе более 1МБ.

smile могу сказать, что это не твоя вина. Меньше 7Мб не получишь при любой оптимизации своего кода.


Цитата(kojot @  7.6.2009,  21:42 Найти цитируемый пост)
Можно ли как-то оптимизировать сей момент?

Откуда берется дерево и в каком виде? Чтобы что-то оптимизировать надо понять с чем мы имеем дело.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
kojot
Дата 7.6.2009, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 17.2.2007

Репутация: нет
Всего: нет



Цитата(SABROG @ 7.6.2009,  22:47)
Цитата(kojot @  7.6.2009,  21:42 Найти цитируемый пост)
Билд в релизе более 1МБ.

smile могу сказать, что это не твоя вина. Меньше 7Мб не получишь при любой оптимизации своего кода.


Цитата(kojot @  7.6.2009,  21:42 Найти цитируемый пост)
Можно ли как-то оптимизировать сей момент?

Откуда берется дерево и в каком виде? Чтобы что-то оптимизировать надо понять с чем мы имеем дело.

Дерево создаю сам.
Вид примерно такой:

+-TopLevel1
|  |
|  +--Child1Level1
|  |   |
|  |   |--Item1
|  |   |
|  |   |--Item2
|  |
|  +--Child1Level2
|      |
|      |--Item1
|      |
|      |--Item2
|
|
+-TopLevel2
   |
   +--Child2Level1

и т.д.

Количество Item'ов и ChildLevel'ов варьируется. 

более 1МБ - это только мой код без библиотек.

Это сообщение отредактировал(а) kojot - 7.6.2009, 23:09
PM MAIL   Вверх
SABROG
Дата 7.6.2009, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Тогда советую тебе найти хранилище для дерева, будь то база данных или xml файл. 500 итемов вшивать в код не практично и не правильно.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
Cheloveck
Дата 8.6.2009, 07:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: нет
Всего: 32



Цитата(kojot @  7.6.2009,  23:02 Найти цитируемый пост)
По программе:
TopLevel'ов поряка 20
ChildLevel первого уровня от 1 до 10 в каждом TopLevel
ChildLevel второго уровня от 10 до 100 в каждом ChildLevel первого уровня.
Одинаковых нет - все разные.
Как заполнить QTreeWidgetItem с помощью цикла?

очевидно сделать три цикла.


--------------------
user posted image
PM Jabber   Вверх
Любитель
Дата 8.6.2009, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



True-way - использовать QTreeView и свою модель с поддержкой lazy loading-а smile


--------------------
PM MAIL ICQ Skype   Вверх
kojot
Дата 8.6.2009, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 17.2.2007

Репутация: нет
Всего: нет



Спасибо всем.
Буду ЦИКЛЫ мутить. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.1310 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.