Вопрос с графическим интерфейсом: динамическая компоновка панели? - PullRequest
2 голосов
/ 10 сентября 2011

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

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

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

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

Спасибо.

Ответы [ 5 ]

4 голосов
/ 10 сентября 2011

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

2 голосов
/ 10 сентября 2011

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

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

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

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

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

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

1 голос
/ 11 сентября 2011

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

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

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

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

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

0 голосов
/ 10 сентября 2011

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

0 голосов
/ 10 сентября 2011

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

Лично я очень неравнодушен к Qt и c ++. Qt поддерживает Windows / Mac OS и Linux и очень хорошо организован, имеет приличное количество документации.

...