Вопрос о графическом интерфейсе пользователя: динамическая модульная компоновка панели?

Я студент, работающий в команде инженеров колледжа.

Наша подгруппа программного обеспечения стремится создать модульный графический интерфейс, который позволяет реконфигурировать в реальном времени панели привязки, которые пользователь может перемещать и отсоединять от графического интерфейса (популярные программы, которые имеют этот тип графического интерфейса: Adobe Production Studio, Eclipse, Visual Studio, большинство основные «дизайнерские» программы).

Может ли кто-нибудь предложить основу для разработки такого графического интерфейса? В идеале мы стремимся к совместимости со всеми основными платформами ПК (Linux, Mac, Windows). Допускается любой популярный язык.

Я просмотрел примеры графических интерфейсов wxWidgets, GTK + и Java Swing. Я уверен, что можно разработать такой графический интерфейс с любым из них, но было бы предпочтительнее, если бы мы могли воспользоваться какой-либо существующей структурой или библиотекой. Любые советы / хитрости будут оценены.

Спасибо.


person Jeff Heidel    schedule 09.09.2011    source источник


Ответы (5)


В wxWidgets есть библиотека wxAUI, которая предназначена именно для закрепляемых панелей и панелей инструментов. В папке samples / aui вашей установки wxWidgets есть довольно обширный образец.

person SteveL    schedule 10.09.2011

Я не эксперт, но похоже, что вы говорите о «стыковке» виджетов (или элементов управления, или того, что вы хотите назвать компонентами графического интерфейса). Хотя многие из основных игроков с графическим интерфейсом делают это хорошо, я видел очень немногие за пределами Java, которые хорошо справляются с кроссплатформенностью. Если стыковка критически важна для вашего проекта, вы можете даже захотеть создать простые небольшие тестовые приложения в каждом из основных наборов инструментов графического интерфейса, прежде чем выбирать одно.

wxWidgets использует базовые собственные библиотеки и, по крайней мере, насколько мне известно, не имеет библиотеки стыковки.

GTK + имеет gdl (стыковочная библиотека GNOME), но я не думаю, что это будет работать в винде. Я часто использовал это, и он отлично работает в GNOME.

Qt имеет Dock Widget, но я не разработчик Qt, поэтому я не могу дать вам больше, чем это.

Java / Swing имеет множество стыковочных библиотек. Вам придется погуглить это - слишком много, чтобы я мог перечислить. Я тоже не слишком много занимаюсь Java.

Как бы мне ни не нравились Java-приложения, Java может быть вашим лучшим выбором, если ему действительно нужно работать согласованно на нескольких платформах.

person Micah Carrick    schedule 10.09.2011

В Java Swing есть несколько библиотек с открытым исходным кодом, которые я более или менее успешно использовал в прошлом:

  • flexdock: старая библиотека, очень мощная, но очень сложная в использовании и настройке (на мой взгляд, недостаточно проектной документации ). Проект был заброшен давно, но, когда его удалось «освоить», он дал очень хорошие результаты. Я бы не рекомендовал это сегодня (вообще никакой поддержки)

  • mydoggy: хороший API, простой в использовании (хорошо документирован), но немного сложно настроить, особенно если вы используете внешний вид сторонних разработчиков. Возможно, эта более поздняя проблема исчезла в более поздних выпусках (я пробовал mydoggy более года назад)

  • стыковочные рамки: очень хороший API, проста в настройке, хорошая документация, несколько простых руководств, но отсутствуют «более глубокие» примеры . Хорошо поддерживается. Сегодня я определенно рекомендую пойти с этой библиотекой. Обратите внимание, что библиотека предоставляет 2 уровня API: «общий» и «основной». Я обнаружил, что в документации не очень ясно, какой из них использовать при каких обстоятельствах. Я протестировал обе и, наконец, решил использовать "обычную" библиотеку, но сегодня не смог бы объяснить, почему :-(

Кроме того, есть также несколько коммерческих библиотек док-станции для Swing, в частности, вы можете проверить JIDE , который хорошо известен.

person jfpoilpret    schedule 11.09.2011

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

Я лично очень неравнодушен к Qt и c ++. Qt поддерживает windows / mac os и linux, очень хорошо организован и имеет приличный объем документации.

person Harald Scheirich    schedule 10.09.2011

Это библиотека .NET Winforms, но мы используем Dock Panel Suite. Он с открытым исходным кодом и отлично работает.

person C-Pound Guru    schedule 10.09.2011