Кроссплатформенный графический интерфейс для программ командной строки - PullRequest
2 голосов
/ 20 февраля 2012

Я собираюсь создать приложение и систему, которые будут обрабатывать ввод данных пользователем для программы командной строки. Это варьируется от программ / сценариев, которые они хотят запустить, от компилятора, с которым они будут работать, как обрабатывать результаты и т. Д.

Я искал различные кросс-платформенные решения для этого и ищу несколько предложений.

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

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

Это действительно простые решения «Это графический интерфейс, и вы делаете это с ним». Я уверен, что смогу что-то взломать вместе с Django / Python и создать веб-движок. Однако сервер, на котором выполняется этот код, должен быть основан на Windows, что на самом деле не вариант. (Функция создания отчетов широко использует библиотеку COM).

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

Чтобы немного подробнее рассказать о приложении. У меня уже есть жгут, написанный для обработки отчетов. Программа / служба, с которой я взаимодействую, - это HP Quality Center, а библиотека, о которой я говорил ранее, - это библиотека OTA. Программно что-то делать с QC действительно ограничивает вас Windows, насколько машина, которая ему отчитывается. Этот жгут позволяет довольно быстро сообщать в центр качества о любом виде теста на любом языке. Идея этого инструмента заключается в том, чтобы позволить людям отправлять данные либо в БД, либо в общий каталог, а слушатель на компьютере с Windows постоянно ищет новые данные для отправки в Quality Center.

В результате есть несколько вариантов, и я перечислил выше те, которые изначально приходили на ум. Но я бы очень признателен за какой-то вклад.

1 Ответ

1 голос
/ 20 февраля 2012

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

У Silverlight, похоже, не так уж много будущего.Microsoft говорит, что HTML5 - это путь вперед, своего рода пощечина своему собственному продукту.Он также не является кроссплатформенным (на самом деле Moonlight не устанавливается по умолчанию в большинстве дистрибутивов Linux и не очень надежен).

Также есть Java, wxWidgets, GTK + и некоторые другие.Лично я бы порекомендовал Qt.Я любил разрабатывать с ним, и приложения, написанные с его помощью, не сразу очевидны (если вы можете даже сказать!) Не нативные.

Кажется странным, что вы хотите создать «кроссплатформенность»GUI, но что тогда сказать об инструментах, работающих только на Windows?А веб-сервер не может выполнять произвольные команды на компьютере, на котором запущен браузер (если браузер не просто подключается к локальному хосту).

...