swing — Создание графического интерфейса пользователя для существующего большого кода C ++

В настоящее время я занимаюсь разработкой инструмента с существующим большим кодом C ++. В настоящее время я думаю об использовании дизайна модель-представление-контроллер (MVC). Модель должна содержать весь код C ++. Представление — это то, что видит пользователь, а контроллер — это, по сути, связующее звено между моделью и представлением.

Особенности, которые я ищу:

  • Расширяемый дизайн с MVC
  • Текстовый интерфейс пользователя (TUI), терминал и опция графического интерфейса пользователя (GUI)
  • GUI должен загрузить некоторые текстовые файлы
  • GUI должен использовать некоторый текстовый ввод пользователя для запуска некоторых алгоритмов и генерации некоторых выходных значений
  • GUI должен в конечном итоге всплывать, сохранять, отображать некоторые графики с графиком GNU, например.
  • Код C ++ прекрасно работает в Eclipse (библиотеки, включает в себя, опции сборки)
  • Со временем новые алгоритмы будут добавлены в код C ++, это не должно стать большой проблемой.

Сейчас я нашел 3 решения:

  • QT -> QT Creator почти требует использования IDE, что затрудняет переход от Eclipse, несмотря на преимущества QT. QT также, кажется, требует странной структуры вокруг GUI, так что я запутался в том, как сделать контроллер. Плагин eclipse в настоящее время мертв, я не могу найти его на FTP QT и Nokia.
  • GTKmm -> Происходит из C и иногда немного трудно понять, почему некоторые вещи требуются. Я считаю, что могу сделать эту работу в дизайне MVC.
  • Java Swing с использованием разделяемой библиотеки (JNI) -> Использует Java и C ++, что немного странно. Использование JNI может стоить дополнительной работы над существующим кодом C ++.

У меня есть некоторый опыт работы с Java Swing и почти нет опыта работы с QT и GTKmm.

Итак, что является лучшим решением для создания графического интерфейса, когда у меня уже есть существующий код C ++ в качестве неопытного разработчика интерфейса?

-1

Решение

Из ваших трех вариантов я бы определенно выбрал Qt.

В основном, чтобы Qt был функциональным графическим интерфейсом, вам нужно запустить QApplication, show() какой-то виджет, а затем запустить цикл событий для приложения (QApplication::exec()).

http://qt-project.org/doc/qt-4.8/qapplication.html

http://qt-project.org/doc/qt-4.8/qapplication.html#exec

Qt чрезвычайно гибок и хорошо продуман, и у него есть сильные последователи. И у него есть невероятная документация.

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

http://qt-project.org/doc/qt-4.8/qwidget.html

http://qt-project.org/doc/qt-4.8/qmainwindow.html

Большинство элементов графического интерфейса в Qt действуют только как представление, и нет никаких определенных настроек модели и контроллера. Это остается за разработчиком. Если вы отображаете базу данных или дерево или сетку элементов, есть модель / вид потока, но я не думаю, что это относится к вашему заявлению.

Понимание и использование SIGNALS и SLOTS очень важно для создания интерактивного графического интерфейса в Qt и очень безболезненно.

http://qt-project.org/doc/qt-4.8/signalsandslots.html

http://qt-project.org/doc/qt-4.8/qobject.html#details

Читая о различных видах QWidget, вы сможете найти каждый из элементов, перечисленных в вашем вопросе.

Вот некоторые из них, на которые вы должны обратить внимание:

http://qt-project.org/doc/qt-4.8/qtextstream.html

http://qt-project.org/doc/qt-4.8/qtextedit.html

http://qt-project.org/doc/qt-4.8/qlineedit.html

http://qt-project.org/doc/qt-4.8/qlabel.html

И, конечно же, посмотрите учебники и примеры, которые поставляются с Qt.

Как использовать GNUPlot с Qt

http://lists.trolltech.com/qt-interest/2002-12/thread00068-0.html

Кроме того, как разработчик, который использовал Qt Creator и Eclipse, я предпочитаю Qt Creator, и перенос проекта для работы в Qt Creator очень прост. Если вы хотите изменить цепочку сборки Eclipse для использования библиотек Qt и QMake, это тоже возможно.

http://qt-project.org/doc/qt-4.8/qmake-project-files.html

http://qt-project.org/doc/qt-4.8/qmake-project-files.html#declaring-other-libraries

http://therning.org/magnus/archives/1023

Я надеюсь, что это полезно. Удачи.

1

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

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

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