Как написать графический интерфейс для большого кроссплатформенного проекта C ++? - PullRequest
21 голосов
/ 03 февраля 2010

У меня большой кроссплатформенный (C ++ и Linux) проект C ++, для которого я хочу создать графический интерфейс.

У меня есть несколько очень общих вопросов об основных принципах GUI для такого проекта:

  1. Следует ли отделять графический интерфейс от логики приложения?
  2. Если он разделен, как должны взаимодействовать логика и графический интерфейс? Являются ли сокеты TCP / IP хорошим вариантом? Каковы другие возможности?
  3. Хорошо ли иметь графический интерфейс на языке, отличном от C ++? Если да - на каком языке?
  4. Это хорошая идея иметь графический интерфейс на основе браузера?
  5. Несмотря на то, что основная логика проекта является кроссплатформенной, я могу решить, что графический интерфейс будет только на основе Windows (.NET?), И он будет взаимодействовать с логикой на соответствующей машине Win / Linux через Socket или аналогичный метод. , Это хорошая идея?

Ответы [ 11 ]

0 голосов
/ 11 февраля 2010
  1. Следует ли отделить графический интерфейс от логики приложения?

Да.

  1. Если он разделен, как должны взаимодействовать логика и графический интерфейс? Являются TCP / IP розетки хороший вариант? Что другие возможности?

TCP / IP заходит слишком далеко. Разделите логику приложения и GUI, используя ООП или любой другой подход структурированного программирования.

  1. Хорошо ли иметь графический интерфейс на языке, отличном от C ++? Если да - на каком языке?

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

  1. Является ли хорошей идеей иметь графический интерфейс на основе браузера?

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

  1. Хотя основная логика проекта кроссплатформенная, я могу решить, что графический интерфейс будет только На основе Windows (.NET?), И это будет общаться с логикой на соответствующая машина Win / Linux через Сокет или аналогичный метод. Это хорошо идея сделать это?

ИМХО дополнительная сложность использования сокетов не стоит.

SciTE - довольно хороший пример простого кроссплатформенного приложения. Исходный код должен быть простым для программиста Windows. Я предлагаю вам загрузить исходный код и взглянуть на то, как две платформы (Windows и GTK) обрабатывались в одной и той же кодовой базе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...