Russian Qt Forum
Ноябрь 22, 2024, 22:18 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2] 3 4 5   Вниз
  Печать  
Автор Тема: Пишу диплом!!!  (Прочитано 52996 раз)
the_moop
Гость
« Ответ #15 : Май 12, 2011, 23:27 »

Ок; Я вроде немного разобрался с QTableWidget; Почитаю еще описание...

А есть еще предложения по реализации "окна для отображения миниатюр"?
Или QTableWidget самый "реальный" вариант для решения этой задачи?
Записан
meego_man
Гость
« Ответ #16 : Май 12, 2011, 23:33 »

Ок; Я вроде немного разобрался с QTableWidget; Почитаю еще описание...
А есть еще предложения по реализации "окна для отображения миниатюр"?
Или QTableWidget самый "реальный" вариант для решения этой задачи?
Еще предлагали QListWidget/QListView. Также часто используются для этих случаев. Для отображения большой картинки я бы все таки посоветовал вместо QLabel использовать что нибудь на основе QGraphicsView/QGraphicsScene (там достаточно легко реализовать тот же зум, если он нужен).
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #17 : Май 12, 2011, 23:50 »

Ну сцену и для миниатюр можно использовать.
Так же в сцене можно огл ускорение прикрутить.
Записан
the_moop
Гость
« Ответ #18 : Май 13, 2011, 00:24 »

Ну сцену и для миниатюр можно использовать.
Так же в сцене можно огл ускорение прикрутить.

Да, кстати я думал об этом и в принципе собирался использовать именно ее,
потому что сцена "гибче" (хотя мне сейчас конечно надо больше думать о простоте реализации), но совершенно не знаю как с какой стороны подойти к решению этой задачи:
- очень много "муток" разных и нюансов связанных с самим scene (но это решаеМо)
+
- сходу всплывает проблема с самими миниатюрами;
Как я уже отписывался - это тот еще геморрой (как говорят люди) - создание миниатюр изображений;

Если есть конкретные мысли касаемо решения проблемы с миниатюрами, то прошу их в студию!

спс

« Последнее редактирование: Май 13, 2011, 00:32 от the_moop » Записан
the_moop
Гость
« Ответ #19 : Май 13, 2011, 00:40 »

Еще предлагали QListWidget/QListView. Также часто используются для этих случаев. Для отображения большой картинки я бы все таки посоветовал вместо QLabel использовать что нибудь на основе QGraphicsView/QGraphicsScene (там достаточно легко реализовать тот же зум, если он нужен).

А Если все ж выбирать между Qlist и QTable: разве table не лучше подходит?
... Кстати, я правильно понял, что между ***Widget и ***View отличие заключается в том, что последний более "свободный"? (т.е больше каких-то настроек)
« Последнее редактирование: Май 13, 2011, 00:43 от the_moop » Записан
ieroglif
Гость
« Ответ #20 : Май 13, 2011, 01:09 »

1. база данных SQLite - позволяет хратить базу данных в одном файле и таскать его вместе с программой.
    кроме того в Qt практически во всех последних sdk драйвер базы SQLite идёт по умолчанию и не требуется дополнительного времени на сборку и подключение (если человек не особо с программированием - зачем ему это?)
база позволит нам хранить
1.1 таблица файлов
id(int)
file(QString)
datetime(QDateTime)
1.2. таблица дерева альбомов (у корневого альбома idParentAlbum=0)
id(int)
idParentAlbum(int)
name(int)
date(QDateTime)
1.3. таблица соотношений файлов к альбомам
rowId(int)
albumId(int)
photoId(int)

таким образом мы получаем прочную базу для ведения фотоальбома. (с полями сам играйся, логично =) )
2. получение данных из этих таблиц, и другая работа с ними в Qt элементарна. читать мануал по ключевым пунктам
2.1. QDatabase::addDatabase("QSQLITE");
2.2. QSqlTableModel::setTable(); QSqlTableModel::data(); (всё это описано хоть и на английском, но очень просто и понятно в общем мануале то ли по базам данных, то ли по MVC)
2.3. разобраться с моделью дерева, однако хорошая описана в examples и ищется в поиске хелпа по "Simple Tree Model Example" - её просто надо взять оттуда и чуть чуть переправить что бы она стала универсальной, и сохранить себе на будущее =) она может понадобиться для отображения дерева альбомов.

2.3. но скорее всего ещё понадобится создавать свою собственную модель, наследуемую, скорее всего от QAbstractListModel, ведь список альбомов/директорий в текущем "каталоге" - это лист. все подробности в мануале, часов за 6 разобраться реально со средним уровнем программирования. но пока дойдёт до этого пункта уже нахватается понимания, так что 2 часа Улыбающийся

3. Views/Delegate классы. во-первых, рекомендую воспользоваться каталогом Qxt - там есть замечательное представление (класс, отвечающий за отображение и взаимодействие с пользователем) великолепно удовлетворяющее твоим потребностям. просто загляни по ссылке http://libqxt.bitbucket.org/doc/0.6/qxtflowview.html и посмотри картинку.
3.1. для отображения дерева альбомов сбоку - у тебя уже есть твоя готовая модель из пункта 2.3. - просто подключил и оно само заработало.. прописал сигналы-слоты кликов и прочих действий - таблица альбомов ожила.
3.2. заработали альбомы? лови их сигналы и отправляй модели файлов (которая обращается в QSqlTableModel за данными и уже на уровне SQL запроса отработать только нужные), подключи эту модель к Qxt вьюхе - у тебя появились файлы из альбомов..
3.3. клик по фото и вывод её на фулскрин. ну это уже будет просто, мне кажется =)

4. шлифовка
4.1 добавление фотографий в альбомы, организация файлов - ты хранишь только пути к файлам, или копируешь файлы себе? =) рекомендую первое - проще и дешевле. значит разобраться с QDir.
4.2. грамотно встроить в гуй работу с альбомами - чуть позаморачиваться, но сделать красиво, что бы пользователю высвечивалось предупреждение на всякие события с файловой системой типа "у вас появились новые фотографии, в какой альбом их?", потом высветить превьюшки фоток (тем же виджетом) и т.д. =) если реально парит - делать так, как проще всего, пусть и не удобно =)
4.3. QSS - общее офомрление стилями и прочим =)

удачи! за месяц точно должен управиться =)
если сядешь за комп как в попу укушеный ёжик - напишешь за пару дней =)
Записан
ieroglif
Гость
« Ответ #21 : Май 13, 2011, 01:21 »

по поводу миниатюр, если они понадобятся
1. изначально объяви что твоя программа поддерживает только JPG формат =) не будет проблем с плагинами форматов изображений =)
2. класс QImage ответить на ВСЕ твои потребности.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #22 : Май 13, 2011, 01:24 »

не jpg а png
Записан
the_moop
Гость
« Ответ #23 : Май 13, 2011, 09:36 »

удачи! за месяц точно должен управиться =)
если сядешь за комп как в попу укушеный ёжик - напишешь за пару дней =)
Спс; У меня прямо-таки оптимистичный настрой появился; Я даже убрал ствол из верхнего ящика стола в нижний;
...
И на счет использования именно *.jpg, если честно я так и собирался сделать
...
не jpg а png
А вот тут немного не понял.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #24 : Май 13, 2011, 09:42 »

У jpg проблема с плагинами может быть. Поддержка же png не требует плагинов.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #25 : Май 13, 2011, 09:51 »

Спс; У меня прямо-таки оптимистичный настрой появился;
Ничего, это проходит  Улыбающийся
Записан
the_moop
Гость
« Ответ #26 : Май 13, 2011, 09:53 »

Не знал... Хотя думается , что как бы мне ни хотелось боюсь не получится делать прогу в расчете только на *.png - в том смысле что формат не очень сильно распространен (ну может быть и распространен... я просто сравниваю с тем же *.jpg)
 Программа (если я ее напишу) которая читает только *.png - "ну не знаю, ... "  мне скажут при защите
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #27 : Май 13, 2011, 09:53 »

Спс; У меня прямо-таки оптимистичный настрой появился;
Ничего, это проходит  Улыбающийся
+1.
the_moop, ты пистолет-то далеко не убирай. Подмигивающий
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
meego_man
Гость
« Ответ #28 : Май 13, 2011, 13:58 »

Не знал... Хотя думается , что как бы мне ни хотелось боюсь не получится делать прогу в расчете только на *.png - в том смысле что формат не очень сильно распространен (ну может быть и распространен... я просто сравниваю с тем же *.jpg)
 Программа (если я ее напишу) которая читает только *.png - "ну не знаю, ... "  мне скажут при защите
а чего мучаться то с форматами, смотрим в Qt Assistant класс QImage.Там и jpg и png и еще несколько форматов. Единственно нужно помнить что с прогой придеться копировать все dll для чтения соответствующих форматов (из Qt директории). По поводу миниатюр, то тут проблема опять же решаема, у человека был гемор каждый раз их генерировать, вам же нужно их сгенерировать раз для каждого изображения и записать куда нить (хотя бы во вложенную папку каждого альбома, скажем папку назовете thumbnails).
Записан
meego_man
Гость
« Ответ #29 : Май 13, 2011, 14:00 »

Да, кстати я думал об этом и в принципе собирался использовать именно ее,
потому что сцена "гибче" (хотя мне сейчас конечно надо больше думать о простоте реализации), но совершенно не знаю как с какой стороны подойти к решению этой задачи:
- очень много "муток" разных и нюансов связанных с самим scene (но это решаеМо)
каких именно? в QGraphicsScene можно свободно запихивать стандартные виджеты, так что велосипед изобретать не придеться. Зато есть куча преимуществ, типа анимации и эфектов - ну это для красивостей когда все будет закончено  Смеющийся
Записан
Страниц: 1 [2] 3 4 5   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.06 секунд. Запросов: 22.