пользовательский интерфейс — Какой современный способ создания динамического / гибкого графического интерфейса пользователя через переполнение стека

Я занимался разработкой GUI в течение некоторого времени, но иногда я все еще озадачен тем, как лучше всего к нему подойти.

Чтобы сузить возможные подходы, скажем, мы работаем с WTL / MFC / wxWidgets или любым другим фреймворком, основанным на идеологии update_ui.

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

Но есть и реальные приложения, которые являются сложными, такие как среды разработки Visual Studio / CodeBlocks, исследователи MSSQL и т. Д. Каждое из них имеет несколько фреймов, каждое из которых требует пользовательских меню, пользовательских иерархий и состояний, а иногда даже асинхронные обновления из нескольких потоков.

Например, если файл / сохранение требуется для исходного окна, это не относится к выводу отладки или к окну наблюдения.

Кроме того, обработчики, кажется, теряют свое место в более крупных проектах. Основной фрейм превращается в фрейм MDI или аналогичный комплексный оверлор в структуре с несколькими панелями / вкладками, где панели / вкладки имеют события активации и обновления. И довольно часто, проекты прибегают к ручному обновлению графического интерфейса через check-> enable, button-> disable подходы при активации / отображении.

Кроме того, характеристики производительности ускользают от меня, когда я думаю об update_ui. Это все еще жизнеспособно в приложениях с более чем 500 элементами (элементы меню, кнопки, флажки, серые текстовые поля, ячейки таблицы и т. Д.)?

Итак, кто-нибудь имел опыт решения этих проблем в успешных крупномасштабных проектах и ​​знает, что стоит преследовать в настоящее время, а что нет? А может быть, каковы лучшие практики, контрольные списки для подражания?

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]