LINUX.ORG.RU

GUI


0

1

впечатлившись мелкософтовским avalon и кутешным QML, мне неожиданно пришла в голову мысль: а почему бы не облегчить значительно создание GUI к различным программам? Берём за стандарт один тулкит (естественно, это будет Qt) и делаем следующее: выделяем в стандартной иерархии каталог, например, /gui, где-нибудь в каталоге /lib. В него сваливаются файлы с xml-описаниями (ну или не-xml, а как-нибудь по-другому) графических интерфейсов, и при запуске программы тулкит просматривает этот каталог, подхватывает файл с описанием интерфейса и на ходу интерпретирует его в привычный gui программы. Возможно ли это реализовать технически?

Загружать гуи из внешних файлов с описаниями умеют практически все тулкиты. Тебе осталось только написать загрузчик.

Вот только формочка, это далеко не все. Написание логики работы этой формочки занимает намного больше времени и требует много больше сил.

fat_angel ★★★★★
()
Ответ на: комментарий от fat_angel

Нужно будет изобрести стандарт описания формальной логики. Можно взять, например, форму передачи информации между двумя имбецилами на лоре, коих тут 99%. Ведь могут же они, имея минимальный запас мозгов и несколько слов из диалекта дебилов успешно передавать друг другу информацию.

anonymous
()
Ответ на: комментарий от anonymous

да, некий стандартизированный интерфейс что ли

Savonarola
() автор топика

я почему озаботился этим: программисты в опенсорсе талантливые, но вот дизайнеры и прочие эргономисты - шлак полный

вот если бы каждый занимался своим делом - программеры ваяли бы код, а дизайнеры писали бы GUI на каком-нибудь лёгком скриптовом языке - я думаю, ситуация бы изменилась в лучшую сторону

да и с таким подходом каждый сможет легко переделать гуй под свои извращенские вкусы

Savonarola
() автор топика

С xml ничего не выйдет: в виджетах довольно много особой логики. Если брать императивный язык описания то use the Python (Perl, QtScript), Luke. При этом не совсем понятно чем именно сложное императивное описание виджета на питоне лучше сложного императивного описания виджета на C++ (наоборот понятно: последний компилируется и как минимум быстрее запускается). Так что не вполне ясно чего ты хотел добиться.

KblCb ★★★★★
()

Дурашка, проблема не в написании GUI, как таковом. Формоклепательных утилит хоть жопой жуй. Проблема в наполнении модели приложения данными из гуя и наоборот.

baverman ★★★
()

это все хорошо и применимо до тех пор, пока не понадобится реализовать элемент управленя со спцифичными логикой и поведением.

Genuine ★★★
()
Ответ на: комментарий от Savonarola

вот если бы каждый занимался своим делом - программеры ваяли бы код, а дизайнеры писали бы GUI на каком-нибудь лёгком скриптовом языке - я думаю, ситуация бы изменилась в лучшую сторону

да и с таким подходом каждый сможет легко переделать гуй под свои извращенские вкусы

google: tcl tk
google: Python
google: Ruby
google: биндинги Qt и Gtk
google: XUL

То, что ты хочешь, давно сделано, при чём, много раз и разными способами. Никто ж не мешает взять тёплый ламповый легкий скриптовый Ruby/Python/что_угодно и переделать программу по своему вкусу.

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

Реализаций полно. Нет осознания необходимости задумываться об архитектуре программы.

geekless ★★
()
Ответ на: комментарий от Savonarola

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

KblCb ★★★★★
()

>Берём за стандарт один тулкит (естественно, это будет Qt)

Толсто, но поддерживаю. :}

Insomnium ★★★★
()
Ответ на: комментарий от fat_angel

Glade был в начале и до сих пор широко используется, так что в контексте предложенной TS идеи - монопенисуально ;)

Nagwal ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.