Столкнулся по работе GUI
Сразу задумался, как это всё организовывать логически. Напрашивается дерево само собой,
но что делать с разными событиями и динамической модификацией дерева? например, ситуация, когда заказчику не понравилось пару менюшек и их надо заменить другими или перенастроить порядок вызова менюшек меню и т.п.
Как это реализуют зубры программирования?
P.S. Разрабатываю на C#, но есть вероятность переноса всего этого на C++, поэтому не хочется уж очень сильно использовать фичи этого языка.
P.S.S полазил инету, ничего подобного не нашёл. Только статьи по юзабилити....
Здравствуйте, kosmik, Вы писали:
K>Дерево — для чего?
Для менюшек. Получается дерево менюшек с переходами разными. вот, хотелось бы ещё придумать как переключать с меню на меню связывая события с узлами дерева. В общем случае видится неориентированный граф. или стэйт машина. Но смысл в том, чтобы ремаппинг одного меню на другое(по нажатию одной кнопки, переход по разным меню) можно было вставив пару строк кода.
Если слышал есть некий Rapid+ что ли, для разработки UI для сотовых.
Здравствуйте, Kernan, Вы писали:
K>Столкнулся по работе GUI K>Сразу задумался, как это всё организовывать логически. Напрашивается дерево само собой, K>но что делать с разными событиями и динамической модификацией дерева? например, ситуация, когда заказчику не понравилось пару менюшек и их надо заменить другими или перенастроить порядок вызова менюшек меню и т.п.
Что такое в данном контексте "дерево" и "менюшка"?
(Правильно поставленный вопрос — половина успеха, даже больше)
Здравствуйте, Kernan, Вы писали:
K>P.S. Разрабатываю на C#, но есть вероятность переноса всего этого на C++, поэтому не хочется уж очень сильно использовать фичи этого языка. K>P.S.S полазил инету, ничего подобного не нашёл. Только статьи по юзабилити....
Вопросы программирования конкретного интерфейса как таковые к юзабилити прямого отношения не имеют — это вопросы реализации. Наверное стоит либо сформулировать проблему в терминах пользовательского интерфейса, либо поискать ответ в форумах по C#/C++?
Здравствуйте, Kernan, Вы писали:
K>Сразу задумался, как это всё организовывать логически. Напрашивается дерево само собой,
В принципе, верный подход. Но некоторые дизайнеры считают, что одно дерево вряд ли позволит достичь нужной степени логичности.
Современный стиль — неожиданные сочетания дерева со стеклом, часто акриловым; дерева с металлом. Очень хорошо может выглядеть сочетание дерева с окрашенным МДФ, особенно глянцевым.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, Kernan, Вы писали:
K>>Сразу задумался, как это всё организовывать логически. Напрашивается дерево само собой, S>В принципе, верный подход. Но некоторые дизайнеры считают, что одно дерево вряд ли позволит достичь нужной степени логичности. S>Современный стиль — неожиданные сочетания дерева со стеклом, часто акриловым; дерева с металлом. Очень хорошо может выглядеть сочетание дерева с окрашенным МДФ, особенно глянцевым.
[offtop]Что-то ты какой-то буйный сення [/offtop]
Кстати, ты не прав... в моде стекло и хром!
... << RSDN@Home 1.2.0 alpha rev. 791>>
Если при компиляции и исполнении вашей программы не происходит ни одной ошибки — это ошибка компилятора :)))
Здравствуйте, Hacker_Delphi, Вы писали: H_D>Кстати, ты не прав... в моде стекло и хром!
Не, стекло и хром устарело примерно сорок лет назад.
Стекло и алюминий (т.н. хай-тек) были на пике популярности в девяностые годы; в компьютерный мир, как ни странно, эта мода проникает только сейчас (см. тж. iMac), а в архитектурном дизайне она уже отцвела.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Не, стекло и хром устарело примерно сорок лет назад. S>Стекло и алюминий (т.н. хай-тек) были на пике популярности в девяностые годы; в компьютерный мир, как ни странно, эта мода проникает только сейчас (см. тж. iMac), а в архитектурном дизайне она уже отцвела.
ну так мы же про компьютерный мир говорим
... << RSDN@Home 1.2.0 alpha rev. 791>>
Если при компиляции и исполнении вашей программы не происходит ни одной ошибки — это ошибка компилятора :)))
Здравствуйте, Kernan, Вы писали:
K>Столкнулся по работе GUI K>Сразу задумался, как это всё организовывать логически. Напрашивается дерево само собой, K>но что делать с разными событиями и динамической модификацией дерева? например, ситуация, когда заказчику не понравилось пару менюшек и их надо заменить другими или перенастроить порядок вызова менюшек меню и т.п. K>Как это реализуют зубры программирования?
K>P.S. Разрабатываю на C#, но есть вероятность переноса всего этого на C++, поэтому не хочется уж очень сильно использовать фичи этого языка. K>P.S.S полазил инету, ничего подобного не нашёл. Только статьи по юзабилити....
использовал деревья http://kernel.naumen.ru/Naumen_Kernel_Doc/xct/ в целом идея очень хорошая, потом эти деревья расширяются gui-деревьями, в которых как раз всякие события можно обрабатывать и управлять узлами деревьев. Однако не рекомендую использовать в чистом виде, реализация корявая (osgi там...), хотя и open-source.
Re: Разработка логики работы интерфейса.
От:
Аноним
Дата:
27.02.08 11:55
Оценка:
Здравствуйте, Kernan, Вы писали:
Добрый день.
K>но что делать с разными событиями и динамической модификацией дерева? например, ситуация, когда заказчику не понравилось пару менюшек и их надо заменить другими или перенастроить порядок вызова менюшек меню и т.п.
В свое время я был также озадачен воппросом как лепить интерфейс быстро и желательно при заказчике.
K>Сразу задумался, как это всё организовывать логически. Напрашивается дерево само собой,
К такойже мысли пришел и я. Вот что получилось в результате http://basmp.narod.ru
Перестройка интерфейса осуществляется так:
1. <alt>+<left click> на интересующем элементе.
2. изменение свойств, типа, добавление, удаление, замена (появляется соответствующее меню)
3. перетаскивание к нужному месту в нужном контейнере
4. <alt>+<left click> над местом установки. Так редактируются все элементы (кроме управляющих).
кроме того это можно сделать и программно через встроеный скриптовой движок.