Russian Qt Forum
Ноябрь 26, 2024, 10:02
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Разное
>
Говорилка
>
Пишу диплом!!!
Страниц:
1
2
[
3
]
4
5
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Пишу диплом!!! (Прочитано 53096 раз)
the_moop
Гость
Re: Пишу диплом!!!
«
Ответ #30 :
Май 13, 2011, 15:32 »
Взял книжный пример QGraphicScene и переделываю тихонько под свои нужды;
выкинул ненужное (на мой взгляд);
Сейчас пытаюсь "вывести картинку на сцену", однако она выводит изображение так, что в
центре находится ее верхний левый угол; А мне нужно чтобы изображение заполнило все
окно (т.е например большое изображение уменьшало до размеров окна);
главное, что изображение под размеры окна я подогнал : fitInView()
а вот вывести реально в центре - пока не получается
Уверен, что есть какие-то свойства или методы, но уже час ищу - не нашел ...
спс
«
Последнее редактирование: Май 13, 2011, 15:55 от the_moop
»
Записан
meego_man
Гость
Re: Пишу диплом!!!
«
Ответ #31 :
Май 13, 2011, 16:13 »
Цитата: the_moop от Май 13, 2011, 15:32
а вот вывести реально в центре - пока не получается
Уверен, что есть какие-то свойства или методы, но уже час ищу - не нашел ...
Лучше всего выкладывать свой код сюда в атачменте, так легче понять где ошибка...
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Пишу диплом!!!
«
Ответ #32 :
Май 13, 2011, 17:42 »
Цитировать
Сейчас пытаюсь "вывести картинку на сцену", однако она выводит изображение так, что в центре находится ее верхний левый угол
Цитировать
QGraphicsScene scene(QRectF(-100, -100, 640, 480));
Зачем сдвигаешь начало координат?
Записан
Qt 5.11/4.8.7 (X11/Win)
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Пишу диплом!!!
«
Ответ #33 :
Май 13, 2011, 18:02 »
Цитата: the_moop от Май 13, 2011, 17:49
а мне нужно чтобы чтобы изображение подстраивалось под размеры окна а не наоборот
Ну дык и надо про это говорить.
См.
здесь
или
здесь
.
Записан
Qt 5.11/4.8.7 (X11/Win)
the_moop
Гость
Re: Пишу диплом!!!
«
Ответ #34 :
Май 13, 2011, 18:03 »
посмотрим, спс
«
Последнее редактирование: Май 13, 2011, 18:06 от the_moop
»
Записан
ieroglif
Гость
Re: Пишу диплом!!!
«
Ответ #35 :
Май 13, 2011, 18:38 »
я, конечно, извиняюсь, что опять со своими 5ю копейками, но лучше сначала сделать базу - т.е. ядро системы, которое будет хранить данные, а уже потом отображать эти данные.
на время написания "внутренней части" всё можно проверять через qDebug(), или выводить что-то простое - к примеру, не сами картинки, а только пути к ним..
Записан
ieroglif
Гость
Re: Пишу диплом!!!
«
Ответ #36 :
Май 14, 2011, 00:13 »
Цитата: the_moop от Май 13, 2011, 18:51
Так а под "внутренней системой" Вы подразумеваете базу данных? я верно понял?
Или же: MVC ?
да, я имею в виду именно бд+мвц
делать это всё равно придётся =) а там всё достаточно просто, что бы уже через час видететь какие-то радующие результаты (причём которые уже переписывать вряд ли придётся)
программа всё равно будет хранить какую-то информацию - список файлов, их названия, структура альбомов.
если воспользоваться шаблоном MVC, то гуй - это дело 10ое и, к тому же, достаточно просто заменяемое.
поэтому если написать базу, то смотреть её можно будет через стандартные QTableView + QTreeView. и в последствии их будет просто поменять на другой View или дописать к ним делегатов для красивого отображения.
на самом деле, если убрать БД, а использовать QDirModel в качестве "албомы-фото" (т.е. использовать структуру директорий с файлами в качестве структуры фотоальбома) - то всё будет ещё проще и напишется за 2 часа полностью
QDirModel + QTreeModel в качестве структуры альбомов (пример описан в ассистанте MVC).
настроенный QDirModel + QxtFlowView в качестве листальщика фоток.
всё =)
Записан
the_moop
Гость
Re: Пишу диплом!!!
«
Ответ #37 :
Май 14, 2011, 14:32 »
последовал Вашему совету : начал работать с\над БД;
Не знаю - то ли я чем-то не тем занимаюсь,то ли мне начало вести, но с бд все в принципе оказалось именно так как Вы и говорили - относительно просто;
Может быть к ночи потихоньку разберусь что к чему
Записан
the_moop
Гость
Re: Пишу диплом!!!
«
Ответ #38 :
Май 14, 2011, 19:31 »
Цитата: ieroglif от Май 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)
Разбираюсь с базами данных... Сейчас задумался над тем, что ...:
Мне необходимо будет базу данных описанную в цитированном тексте заполнять;
Т.е нужно будет написать что-то вроде поискового алгоритма (немного "накрутил" конечно) который будет добавлять и искать ...
(я уже определился что буду работать только с jpg)
... картинки; Я еще определяюсь с базой данных - скоро дочитаю... поэтому заполнение бд становится актуальным;
В общем я подозреваю примерно как можно заполнить базу, но работа пойдет быстрее если кто-то поможет советом или поделиться мыслью
«
Последнее редактирование: Май 14, 2011, 19:33 от the_moop
»
Записан
the_moop
Гость
Re: Пишу диплом!!!
«
Ответ #39 :
Май 14, 2011, 19:55 »
+
Дочитываю всем известную книгу Жасмин Бланшет - раздел посвященный базам данных;
Основы ... и еще, чтобы материал лучше осознать просмотрел раздел про МВЦ;
Сейчас дошел до места где началась тягомотина : работа с формами, редактирование базы данных в окне и т.д...,
которая конкретно сейчас думается мне совсем не нужна? я прав?
и в связи с этим Хочу спросить - мне получается сейчас уже можно составить БД? Просто исходя из того, что я только что прочел - делать тут почти нечего; вот и думаю : в чем подвох;
«
Последнее редактирование: Май 14, 2011, 20:03 от the_moop
»
Записан
the_moop
Гость
Re: Пишу диплом!!!
«
Ответ #40 :
Май 14, 2011, 20:00 »
И еще:
Я так пока и не решил - эти таблицы должны быть связанными между собой КЛЮЧАМИ или это совсем необязательно?
Например, как я понял: можно связать "таблицу с файлами" с "таблицей с альбомами", тогда третья таблица получается не будет нужна;
С другой стороны : при таком подходе я вижу проблему в заполнении таблиц;
В общем я запутался: подгоните кто-нить свежу мысль , так как я еще всю информацию не "вкурил"
Записан
ieroglif
Гость
Re: Пишу диплом!!!
«
Ответ #41 :
Май 14, 2011, 21:16 »
1. для работы с SQLite базой я испльзую sqlitestudio-2.0 - работает отлично, позволяет быстро спроектировать и забить базу рыбой (тестовыми данными), что бы в Qt уже работать удобно было.
2. связывать ключами на уровне БД таблицы не обязательно. ты эти связки вполне можешь реализовать кодом - меньше заморочек будет.
3. в какие-то моменты ты можешь сам писать SQL запросы, что бы получать сразу нужные тебе данные в QSqlTableModel
4. "таблица файлов" может в себе содержать поле albumId для каждой записи. тогда третья таблица действительно будет не нужна, код программы окажется ещё проще, только один файл будет только одном альбоме. в случае промежуточной таблицы один файл может находиться в нескольких альбомах (пожалуй действительно излишняя функция =) )
5. да, по сути ты проектируешь базу используя sqlitestudio-2.0, забиваешь ручками туда тестовые данные (3-4 файла + 1-2 альбома), настраиваешь модели, подключаешь к ним вьюхи всё =)
Записан
the_moop
Гость
Re: Пишу диплом!!!
«
Ответ #42 :
Май 14, 2011, 21:18 »
Цитата: ieroglif от Май 14, 2011, 21:16
1. для работы с SQLite базой я испльзую sqlitestudio-2.0 - работает отлично, позволяет быстро спроектировать и забить базу рыбой (тестовыми данными), что бы в Qt уже работать удобно было.
да, тут я кстати сразу не сообразил, что это прямо отдельная ... А проблемы какие-то в освоении могут быть? ... хотя сейчас качну - проверю
Записан
the_moop
Гость
Re: Пишу диплом!!!
«
Ответ #43 :
Май 14, 2011, 21:26 »
думаю все же еще придется мне перечитать "про базы данных", а пока:
но все-таки, как мне эти сами "таблицы" заполнять? Я так понимаю мне придется поработать с QDirModel? Или есть какие еще варианты?
Просто думается в случае вложенных папок не все так просто будет - особенно если учесть для чего мне все это нужно в итоге.
Записан
the_moop
Гость
Re: Пишу диплом!!!
«
Ответ #44 :
Май 14, 2011, 21:37 »
Цитата: ieroglif от Май 13, 2011, 01:09
2.3. разобраться с моделью дерева, однако хорошая описана в examples и ищется в поиске хелпа по "Simple Tree Model Example" - её просто надо взять оттуда и чуть чуть переправить что бы она стала универсальной, и сохранить себе на будущее =) она может понадобиться для отображения дерева альбомов.
2.3. но скорее всего ещё понадобится создавать свою собственную модель, наследуемую, скорее всего от QAbstractListModel, ведь список альбомов/директорий в текущем "каталоге" - это лист. все подробности в мануале, часов за 6 разобраться реально со средним уровнем программирования. но пока дойдёт до этого пункта уже нахватается понимания, так что 2 часа
+ хотел такое спросить:
В принципе я конечно понимаю, что использование QDIR*** и "дерева" должно упростить задачу при работе с директориями и т.д... , но! ... думается мне, что это нечто избыточное в данном случае;
Так вот - если у меня "альбомы" связаны с конкретными "фотографиями", то почему мне просто не выводить список альбомов без мутни с "деревьями"? ведь если у меня есть имя файла (как я понял - это полный его путь) и имя альбома (полный путь папки) то и в дереве необходимости не будет;
Хотя конечно есть нюансы - если папок с картинками будет довольно много - то и альбомов будет много....
Да уж; Чем больше прочитываю, тем больше вопросов;
спс и извиняюсь за свои возможно () дЭбильные вопросы
«
Последнее редактирование: Май 14, 2011, 21:39 от the_moop
»
Записан
Страниц:
1
2
[
3
]
4
5
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...