- PVSM.RU - https://www.pvsm.ru -
Итак, однажды, работая на одном из промышленных предприятий, которое имело собственное оборудование для коммерческого учета нефти, со своими программными решениями под разными ОС, все чаще и чаще стал задумываться над кроссплатформенной разработкой ПО.
Хлебнул я тогда разных библиотек. Были в этом списке и Gtk+, и QT. Но по настоящему, меня привлекла wxWidgets.
Был у меня в то же время частный проект БД для фирмы, которая занималась сопровождением сделок по купле-продаже автомобилей, страхованием, ТО. Его я делал по выходным. На начальном этапе, этого проекта я и опробовал QT, Gtk+, wxWidgets, но в итоге полностью заново реализовал при помощи других инструментов, потому как:
Терпение — прекрасное качество, но жизнь слишком коротка, чтобы долго терпеть — Абу-ль-Фарадж.
На тот момент причиной отказа от использования этих библиотек было ограничение по времени, а не сложность технической реализации. Бизнес ждать не любит.
В общем, при разработке этого проекта для каждой опробованной библиотеки я достиг определенного уровня завершенности. В таблице указаны результаты в порядке возрастания.
Инструмент | Что было сделано | Отзыв от заказчика | Причина отказа |
---|---|---|---|
QT | Пара форм + обвязка их логикой. | Заказчику не представлен. | Много времени тратил на поиск решения. |
Gtk+ | Весь GUI. | Для WinXP GUI выглядел не как родной и привычный. | Не хватало построителя GUI, интегрированного в IDE. Не привычный вид GUI. Громоздкость реализации, длинные имена функций. Много времени тратил на поиск решения. |
wxWidgets | Весь GUI + БД. | Не было печати документов с точным позиционированием элементов. | Не было готового генератора шаблонов документов для печати. |
Были и другие, но их результаты еще скромнее, чем у QT.
Справедливости ради надо сказать, что это было первый опыт использования всех этих библиотек. Если бы не генератор шаблонов документов для печати в wxWidgets…
В итоге совсем недавно я сделал минимально-жизнеспособный кроссплатформенный генератор шаблонов и клиентскую библиотеку для печати с использованием wxWidgets на том уровне, которого мне бы хватило тогда.
Желающие попробовать могут взять тут: c-help.tk [1]. Сайт мне любезно предоставил брат, я его попросил оформить максимально упрощенно и без изысков. Надеюсь, у нас получилось.
Что имеем на данный момент:
Как это выглядит?
Генератор шаблонов:
Простейший клиент (консольное приложение слева):
Как это работает?
Генератор шаблонов:
1. Создается некий шаблон, в котором графические элементы точно расположены, как на техническом чертеже.
2. Создается перечисление имен переменных
3. В нужные места шаблонов размещаются текстовые поля.
4. В текстовые поля можно вводить статичный текст вместе с именами переменных. Переменная указывается между специальными символами «${» и «}$» (пока только вручную).
5. Сохраняется шаблон в файл. В файле может быть множество шаблонов. Файлы картинок к шаблону не прикрепляются. Клиент на печать выдает только картинки в формате BMP.
Клиент + клиентская библиотека:
6. Загружает файл шаблона.
7. Выбирает шаблон (пока только через индекс).
8. Задает данные в переменные (пока только через индекс).
9. Выдает на печать. При печати могут произойти смещение из-за разных настроек полей принтера.
Что использовалось:
Что порадовало в wxWidgets:
Что не очень порадовало в wxWidgets:
Думаю, что без автоматизации многих моментов в Code::Blocks, использовать wxWidgets было бы сложнее.
Вот и все пока.
Автор: ronme
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/c-3/106254
Ссылки в тексте:
[1] c-help.tk: http://c-help.tk
[2] Источник: http://habrahabr.ru/post/273141/
Нажмите здесь для печати.