|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
01.07.2011, 21:53 | #1 |
Участник клуба
Регистрация: 21.03.2010
Сообщений: 1,508
|
Программа для создания электронных книг, C++ Qt
Здравствуйте! Вот вторая моя программа, написанная на C++(Qt). Выношу на обсуждение её и исходник - 0.0.7.
Ссылка на SourceForge.net. Она предназначена для создания электронных книг, с централизованным хранением в базе данных SQLite3. (Подробнее будет завтра). Этот код публикуется впервые. Его не было нигде, включая репозиторий программ Sisyphus от дистрибутива AltLinux. Там был только Клёст-кроссворд(0.1.9, 0.2.0). Комментируем Windows-версия. |
02.07.2011, 00:03 | #2 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Скажу сразу, что сильно не вникал, можно сказать пробежался глазами по структуре. Не буду лукавить, исходник мне не понравился. В первую очередь следует сказать, что у Вас смешаны интерфейс с логикой, при чём сильно и даже несколько неожиданно (взять хотя бы ElectronicLibrary, в котором более 1000 строк, что не странно, ведь он реализует две не взаимосвязанные вещи: отрисовку интерфейса и работу с базой). Но ладно. Далее могу сказать про километровые методы, которым не видно конца (конкретно имею ввиду открытие книги, при чём сократить можно было как минимум в два раза, устранив дублирующийся функционал из "Открыть из файла" и "Открыть из базы"). Плюс к этому стандартный выговор за обилие публичных переменных, не соблюдение соглашения по именованию (хотя бы своего) и кошмарное форматирование (хотя это, безусловно, дело вкуса и тут упрекнуть Вас не могу). Возможно были ещё какие-то замечания, но вылетели из головы, пока рассматривал исходники.
Несмотря на всё то негативное, что сказал я выше, хочу поблагодарить за проделанную работу и более того, за открытые исходники. Успехов Вам. |
02.07.2011, 17:34 | #3 | ||||
Участник клуба
Регистрация: 21.03.2010
Сообщений: 1,508
|
Цитата:
Цитата:
Цитата:
Соглашение по именованию есть - этот стандарт записан в строгом соответствии с "закаулочно-канавочным мышлением"(М. Задорнов) . Форматирование - это мне так прозрачнее видеть код. Цитата:
Добавлю: код под GNU GPL v2 - OpenSource. |
||||
02.07.2011, 18:33 | #4 |
Участник клуба
Регистрация: 21.03.2010
Сообщений: 1,508
|
Описание
Страница книги представляет собой одну переменную QString Page.
Текст книги отображается в компоненте QTextEdit TextBook. Текст в компоненте TextBook имеет форматирование документа HTML. Поэтому редактирование текста страницы осуществляется редактированием html-кода. Стандартное сохранение идёт в базу данных. Но есть и возможность экспорта в файл. Изображения хранятся, как в обычной html-странице - отдельно от текста в папке "temp". В тексте указывается путь. При загрузке книги - во всех страницах происходит перезапись тегов изображения "<img src=": Код:
Код:
Код:
Список страниц хранится в списке строк QStringList ListPages. Изображения хранятся в массиве QByteArray ListImages[255]. Здесь видно, что изображений на всю книгу 255. Сохранение в базу происходит обычными SQL-запросами: Код:
Последний раз редактировалось xwicked; 03.07.2011 в 00:56. |
11.07.2011, 01:04 | #5 | ||
Участник клуба
Регистрация: 21.03.2010
Сообщений: 1,508
|
Пользователям ОС Linux на RPM-основе
Для тех, кто захочет сделать свою сборку программы для размещения на собственном сайте или сервере, то вот спекфайл:
Цитата:
Цитата:
Последний раз редактировалось xwicked; 11.07.2011 в 17:50. |
||
17.07.2011, 13:22 | #6 |
Участник клуба
Регистрация: 21.03.2010
Сообщений: 1,508
|
Клён-библиотека 0.0.8
Здравствуйте!
Следующая версия программы 0.0.8, 0.0.8-rpm. Её ключевой особенностью является импорт html-файла. Вот функция: Код:
|
17.07.2011, 13:22 | #7 |
Участник клуба
Регистрация: 21.03.2010
Сообщений: 1,508
|
Клён-библиотека 0.0.8 (продолжение)
Код:
Разбивая страницы, она переносит всю таблицу на одну страницу до конца, даже, если таблица физически должна быть на 2-х или более страницах. Импортируются пока только html-страницы, созданные в OpenOffice. Это делалось для того, чтобы преподаватели, у которых имеются методички в формате MSWord(*.doc) могли наиболее быстро перегнать своё пособие в мою программу. Как Вам эта функция и есть ли возможность всё это максимально упростить? Благодарю за ответ. P.S. Следующим сообщением я выложу архив для сборки deb-пакетов, дистрибутивов ОС Linux Debian, Ubuntu. |
24.07.2011, 20:30 | #8 | |
Участник клуба
Регистрация: 21.03.2010
Сообщений: 1,508
|
Клён-библиотека 0.0.9
Теперь и счастливым обладателям дистрибутивов GNU / Linux Debian и его производным(Ubuntu), предоставилась возможность попробовать себя в качестве разработчиков ПО.
Новая версия электронной библиотеки 0.0.9, 0.0.9-rpm, 0.0.9-deb. Серьёзным изменением в данной версии является ускорение загрузки книги из базы данных. Это связано с выгрузкой изображений из базы на диск в папку. Сначала я не знал, как сделать лучше, поэтому сделал выгрузку по одному байту, что занимало большой промежуток времени. При использовании объекта QImage - этот процесс уcкорился на моей тестовой машине раз в 20(!). Код ниже: Код:
Код:
Команда сборки: Цитата:
Последний раз редактировалось xwicked; 24.07.2011 в 20:33. |
|
29.07.2011, 21:28 | #9 | |
Участник клуба
Регистрация: 21.03.2010
Сообщений: 1,508
|
Клён-библиотека 0.1.0
Здравствуйте!
В этой версии я сделал одно важное изменение, на которое хотел бы обратить Ваше особое внимание. Это функция "int slotChangeFont()". Там я копирую в переменную QString sText всё выделение: Код:
Так вот, там должен быть способ в одну единственную строчку. Я даже нашёл его - записал в свою амбарную тетрадь, а сейчас найти не могу . Прошу помочь в нахождении этого способа, так как "int slotChangeFont()" занимает не много не мало, аж 195 строк(!). Буду благодарен. Исходный код: 0.1.0, 0.1.0-rpm, 0.1.0-deb. Что изменилось: Цитата:
Последний раз редактировалось xwicked; 29.07.2011 в 21:37. |
|
10.08.2011, 18:36 | #10 | |
Участник клуба
Регистрация: 21.03.2010
Сообщений: 1,508
|
Клён-библиотека 0.1.1
Здравствуйте! Вот новая версия 0.1.1 - исходный код + сборки.
Внешний вид: Одно из добавлений - это функция поиска текста по книге: Код:
int iNumberPage - текущая страница QStringList ListPages - список страниц с текстом. Для поиска используется "TextBook->find(sFindText)" - будет ли выгода, если использовать функцию поиска в QString непосредственно или использовать контейнер для ускорения? Предполагаю, что сейчас тратится дополнительное время для прорисовки QTextEdit TextBook. Все новинки: Цитата:
Последний раз редактировалось xwicked; 10.08.2011 в 18:52. Причина: Добавление фото :) |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Открытие электронных книг | referent | Общие вопросы Delphi | 1 | 07.04.2012 16:05 |
читалка электронных книг для чтения pdf | Arassir | Компьютерное железо | 1 | 15.11.2011 12:56 |
программа для рассылки электронных писем | sergey6262 | Общие вопросы .NET | 1 | 19.09.2010 23:43 |
программа для рассылки электронных писем | sergey6262 | WordPress и другие CMS | 2 | 17.09.2010 00:31 |
программа для рассылки электронных писем | sergey6262 | Общие вопросы Delphi | 1 | 14.09.2010 22:09 |