Подтвердить что ты не робот

Gui toolkits, который я должен использовать?

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

Какой графический интерфейс GUI я должен использовать?

Я совершенно не знаком с кодированием и созданием GUI, и буду благодарен за любые рекомендации, которые могут быть предложены. Это не должен быть самый простой набор инструментов в мире, я учился довольно быстро. Тем не менее, он должен иметь возможность делать следующие вещи (некоторые, если не все из них, вероятно, невероятно базовые для любого данного инструментария, но я думал, что было бы неплохо выбросить все это на всякий случай).

Он должен позволить мне рисовать непосредственно на экране, чтобы я мог поместить графики (спектры на самом деле), сюжеты и тому подобное, чтобы они могли видеть. Мне нужно иметь возможность собирать информацию о местоположении, где они нажимали на вышеупомянутые спектры. Мне нужно иметь возможность отображать текст и вводить текстовый ввод от пользователя. Он должен иметь возможность создавать меню (вы знаете "Файл", "Редактировать" и т.д.). Если бы у него был встроенный виджет для генерации таблиц, который был бы удобен (хотя я могу преодолеть недостаток этого, если я могу рисовать непосредственно на экране). Он должен иметь возможность всплывать предупреждения, диалоговые окна, сохранять и открывать коробки и т.д. Это почти все, большинство из них кажутся довольно простыми, когда я их выписываю, но я не хочу, чтобы GUI был частично закодирован и затем осознайте, что II нужно переписать его с помощью другого инструментария.

Следует отметить, что я написал эту программу на С++ и что я не хочу писать часть GUI в C или что-то еще, поэтому инструментарий должен поддерживать С++.

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

Наконец, я бы DRAMATICALLY предпочитал инструментарий с открытым исходным кодом для инструментария с закрытым исходным кодом.

Кроме того, я не могу придумать ничего, чтобы добавить. Заранее благодарю вас за ваше время и ответы.

На основе ответов я рассмотрю как Qt, так и wxWidgets и посмотрю, какие призывы ко мне больше. Я с тем, что принимаю несколько ответов, но не могу, и поскольку я смотрю на две вещи, было бы несправедливо принимать только один из ответов, возможно, через неделю или две, тогда я посмотрел на инструментальные средства и понял который я хочу использовать.

4b9b3361

Ответ 1

Для С++, на мой взгляд, Qt является наименее расстраивающим и наиболее полнофункциональным инструментарием. Его также полностью перекрестная платформа. Обратите внимание, что Qt будет лицензироваться LGPL некоторое время в марте 2009 года, когда версия 4.5 станет доступной. В настоящее время он доступен только в версии GPL и коммерческой лицензии.

Дизайнер Qt GUI хорош. Он имеет множество функций утилиты (библиотека графа сцены, поддержка перевода, встроенный механизм Javascript, встроенная библиотека WebKit). Через MOC (специальный предварительный компилятор) он также предоставляет несколько возможностей привязки во время выполнения и интроспекцию на С++.

Для вашего технического приложения вы можете обнаружить, что Qwt (http://qwt.sourceforge.net/) предоставляет то, что вам нужно. Он построен на Qt.

Qt можно даже использовать "без головы", если вы хотите, чтобы его служебная поддержка (например, сеть и т.д.) без GUI.

Другая кроссплатформенная версия С++ - это wxWidgets, которая может использоваться, но не очень сопоставима с Qt. Его набор инструментов с более низким уровнем и не так прост в использовании или полностью округлен. Gtkmm - еще один вариант, в духе GTK +.

Ответ 2

Попробуйте WxWidgets. Кросс-платформа (компиляция на Linux, Mac OS X и Windows) и широко распространена.

http://www.wxwidgets.org/

С открытым исходным кодом тоже!

Ответ 3

Я вижу, что никто не комментировал GTKmm. Это воплощение С++ для GTK +, и это очень приятно использовать. Я также использовал Qt, но мне не нравится беспорядочный сигнал/код подключения, генерируемые файлы moc_XXX и т.д. GTKmm имеет сигналы и т.д., Но не этот шаг предварительной обработки, а также почти весь набор инструментов Qt может предложить в графическая арена.

Ответ 4

Я бы сказал, что это зависит от того, хотите ли вы использовать внешний вид Look and Feel для ОС, которые вы настраиваете для своего приложения. Qt, как было сказано ранее, является, пожалуй, самым легким из кроссплатформенных наборов инструментов, но это его собственный набор виджета. Вы не получите внешний вид и внешний вид приложения, если вы не используете KDE.

Я использую wxWidgets на работе. Иногда это может расстраивать, а в некоторых местах не очень отполировано, но оно дает внешний вид и ориентацию на платформы, на которые вы нацеливаетесь. Он фактически обертывает собственные элементы пользовательского интерфейса, чтобы предоставить им общий API на всех платформах, к которым переносится wxWidgets.

Ответ 5

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

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

Мой результат? С почти 9 лет я использую Qt (но первые годы только для GUI) - теперь у меня очень сложные сетевые приложения с балансировкой нагрузки, массивной многопотоковой обработкой и обработкой изображений.

Вы можете использовать Qt как коммерческий пользователь с профессиональной поддержкой (например, я) или просто начинать свои собственные проекты под GPL и с помощью 4.5PL с LGPL (что позволяет коммерческое использование).

Другие альтернативы, такие как wxWidgets и GTK ++, являются очень хорошим выбором для программирования графического интерфейса.

Но если вы хотите хорошо документированное и полное решение, то Qt - ваш выбор.

С наилучшими пожеланиями, 3DH

Ответ 6

Я бы также рекомендовал wxWidgets вместе с DialogBlocks, что является действительно приятным визуальным графическим дизайнером.

Я скажу, что wxWidgets имеет несколько грубых краев, но сообщество разработчиков очень активно реагирует на сообщения об ошибках/questions/вклады.

Ответ 7

Qt. Также вы можете использовать KDE, который построен поверх Qt.

Ответ 8

Я использую wxWidgets (toolkit) + wxFormBuilder (gui-designer) + eclipse (ide). Все инструменты являются кросс-платформенными и бесплатными.