Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > загрузка QPixmap из БД |
Автор: ecspertiza 1.4.2009, 08:36 | ||
Есть такая тема нужно создать компонент в котором будут создаваться Item в виде таблицы , в каждом Item-e должна быть картинка и внизу описание, проблема в том что картинку я загружаю в QPixmap размерность 5х4 то бишь 20 картинок, довольно токи долго грузятся вот как я подгружаю картинку
может есть что то быстрее? или уже есть готовый компонент вот фотка? http://pic.ipicture.ru/uploads/090401/o5r5CD5Uc4.jpg |
Автор: Elfebet 1.4.2009, 09:20 |
1. 3 и 4 строка у тебя лишние 2. Для быстроты картинки можно загружать в другом потоке 3. Так же загружать каждую картинку по мере необходимости Добавлено через 5 минут и 45 секунд а также использовать QPixmapCache на счет компонента - для простоты я бы использовал QTableWidget |
Автор: ecspertiza 1.4.2009, 09:30 | ||
эээ извиняюсь с кодом напутал так как в первом посте написано картинки вообще не подгружаются
вот так подгружаются но долго, а загружать в отдельном потоке не знаю навряд ли поможет так как суть такова есть таблица с каталогами у каждого каталога может быть несколько картинок( в идеале неограниченно), вот и отображение должно происходить так, юзверь в QComboBox выбрал каталог и в этот компонент под грузились картинки размерностью выбранной юзверем, при этом если картинок больше чем позволяет размерность то должен появится ешё и выбор страниц, так что загрузка по мере необходимости уже тоже присутствует))) |
Автор: just_geek 1.4.2009, 09:41 |
гхм, может сам запрос не оптимизирован? Проверь просто выполнение запроса без загрузки в pixmap. Покажи полностью код вместе запросом и загрузкой pixmap'a, а не этот кусок. |
Автор: ecspertiza 1.4.2009, 09:50 | ||||
процедура запроса и создания массива
класс PreviewItem
вот как то так |
Автор: just_geek 1.4.2009, 09:57 | ||
Передача массива и строки по значению. Замени на ссылку или указатель. |
Автор: Elfebet 1.4.2009, 10:14 | ||
в твоем случае идет копирование data, что есть лишнее, сделай так
|
Автор: ecspertiza 1.4.2009, 10:54 | ||
Сделал особо не помогло, хотел ещё спросить размер картинок 70-250 кб это сильно много? всё время жрёт вот этот кусок
|
Автор: just_geek 1.4.2009, 11:44 | ||
Это общий размер, или каждой? В любом случае не очень много. У нас в проекте грузятся QImage, гораздо большего размера и в большем количестве. Да еще из пожатого zlib'ом архива. Правда отрисовывается все в QGLWidget ![]() Убрал его и загрузка стала быстрее? Сборка дебаг или релиз? |
Автор: ecspertiza 1.4.2009, 12:00 |
Размер каждой Почти ![]() релиз Ещё такой вопрос как средствами КуТе уменьшить размер(высота, ширина) изображения? Думаю может в базе хранить превьюшки размером 200х300 пикселей, они весят килобайт по 10:) |
Автор: just_geek 1.4.2009, 12:07 | ||
Попробуй его убрать ![]() Метод
|
Автор: bsa 1.4.2009, 13:11 | ||||
В документации указано, что в QT все контейнеры имеют архитектуру COW (copy on write), т.е. по сути они сами представляют собой указатели с подсчетом ссылок. Поэтому не удивительно, что при замене на ссылку ничего не изменилось. ![]() |
Автор: ecspertiza 1.4.2009, 14:34 |
Превьюшки немного помогли до превью загрузка на 20-ть картинок была 2.3 сек после 0.9))) |