Как стать автором
Обновить

Комментарии 14

Идеальное пользовательское соглашение!
Да и расширения заголовочного файла *.hui не отстает) теперь можно человека обзывать заголовочном файлом )
Я знал, что найду такой комментарий!
Собственно, Вы сделали расширенный аналог Zenity и Yad на Qt. В целом, это может быть очень интересным, если будет кроссплатформенным.
Кстати, если сделать поддержку опций zenity или yad, то будет прямой конкурент с рядом преимуществ.
НЛО прилетело и опубликовало эту надпись здесь
Весело кстати используемого. Я на их основе сбацал меню для настройки конфига на базе ассоциативных массивов баша.
Если бы не XML, то было бы неплохо. Даже не менее универсальный json выглядит на порядок дружелюбнее, а специализированные форматы значительно удобнее и читабельнее.
А в чём был смысл брать XML, который и так не подарок для редактирования, но хотя бы есть средства редактирования, и запиливать «свой формат» XML подобный но с костылями типа комментариев # и [[ ]]?
Много работы перекладывается на плечи пользователя — логичнее было бы передавать в вызываемые скрипты ВСЮ форму в удобном для обработки стандартными средствами баша виде, или ещё лучше — организовывать временный файл состояния формы доступный для грепания.
Update без возможности удалять виджеты — face palm
# нужен был для комментирования кода, особенно при отладке. А #include вообще спас от слепоты.
[[ ]] вынуждено добавлено, потому что < и > в иксемели зарезервированные и их нельзя использовать.
Ну а остальное, это взгляд на роад мэп. Можно как угодно.
А к удалению виджетов дело не дошло, потому что к тому времени уже отпустило.
Сделать было не сложно, но удобно. На то время, когда не отпускало, казалось это очень хорошей идеей.
Откройте для себя CDATA
Большое спасибо за интересный пост. Ваша разработка напомнила мне весьма занимательный подход для построения простеньких мобильных приложений с UI. Этот подход когда-то был использован в смартфонах Motorola, работающих под управлением GNU/Linux. Интерфейс этих гаджетов, кстати, тоже использовал библиотеку Qt, вернее одну из ее версий для Embedded-устройств — Qt/Embedded версии 2.3.8 (библиотека Qt в то время принадлежала компании Trolltech ASA). Правда, Motorola внесла свои изменения в Qt/Embedded и дополнила библиотеку собственным фреймворком. Так вот, для упрощения разработки различных программ под эти устройства, были созданы так называемые «ShowModules», представлявшие собой простенькие C++/Qt-based программы, принимающие несколько аргументов командной строки или читающие настройки из специального файла. На основе полученных данных и строился интерфейс приложения. Создание программ и полезных утилит с помощью «ShowModules» было очень простым занятием, начинающий разработчик мог написать собственную программу используя Shell-кодинг или известный ему язык программирования, который поддерживал вызовы внешних утилит. Например, для того чтобы отобразить на экране телефона вот такой простенький диалог:

image

Нужно было всего-лишь выполнить скрипт:

#!/bin/sh
I4="Scan Complete"
I5="Your SD card is clean"
showMsg "$I4" "$I5" 2

Таким образом, с помощью набора «ShowModules» получались вполне работающие приложения с нативным интерфейсом. Например, такие:

image

Исходный код утилиты, в котором весьма просто разобраться даже новичкам. Обратите внимание, что все «ShowModules» имеют префикс «show» и несколько аргументов, отвечающих за отображаемую информацию и элементы управления.

Помимо простых интерфейсов, можно было строить и сложные. Например, с вкладками, текстовыми полями, счетчиками и другими элементами мобильного интерфейса. Обычно, утилиты, реализующие такие интерфейсы:

image

Использовали специальные конфигурационные файлы, описывающие не только UI, но и поведение программы при выборе каких-либо пунктов. Если посмотреть на файл по ссылке выше, то можно увидеть, что при выборе пункта списка «Scan SD card», будет выполнен скрипт из текущего каталога с именем «SD_scan.sh», который просканирует карту памяти.

Несмотря на то, что для этих смартфонов можно было разрабатывать приложения и на C++/Qt, разработчики довольно-таки часто использовали именно такие «костыли». Всё-таки порог вхождения в C++/Qt на этой платформе был неоправданно высок (2006(7) год, нет даже нормальных IDE для C++/Qt, полностью отсутствует необходимая документация); создание чисто нативного C++/Qt приложения требовало большого количества времени, нервов и усидчивости. Ведь нормальный SDK для этих платформ Motorola так и не выпустила, поэтому для разработки использовался любительский, с отреверсенными на коленке библиотеками, следовательно, отлов багов в приложении был тем ещё джедайством. Но это уже другая история…
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации