Кроссплатформенное GUI прилолежине — на чем лучше писать?
Добрый день!
Есть задача — написать кроссплатформенное (Linux, Windows и Mac) приложение с GUI-интерфейсом, работающее с USB-устройством. Приложение считывает определенные данные с него и отправляет на сервер.
Хочется, чтобы приложение выглядело примерно одинаково красиво на всех платформах. Какой язык/GUI-фреймворк посоветуете? Пока больше смотрю в сторону Java…
Странно, но мне казалось один из ответов будет mono. Интересно, кто-нибудь пробовал делать кросплатформенное приложение на нем? Выглядит-ли оно системноинтегрированным?
wxpython.org/ Просто к слову: я ненавижу приложения которые выглядят «одинаково красиво» на всех платформах. Приложение должно выглядеть как остальные в _данной_ платформе. А иначе да, Qt/Java
Ну, вообще-то LookAndFeel в Java тоже настраивается, и приложения вроде абсолютно нормально смотрятся, если конечно не надо пользоваться нативными средствами для красивой анимации действий.
Помимо Qt еще есть GTK/wxwidgets (с поддержкой уймы языков).
Есть и другие кроссплатформенные тулкиты, но они либо полумертвые, либо очень уж экзотические.
Я за Qt, на java писать gui не очень удобно, а в сравнении с Qt так вообще ад, плюс с Qt вы можете без проблем пользоваться кучей уже созданных c++ библиотек
Если нет предубеждений перед паскалем, то как вариант можно рассмотреть Lazarus. Простота реализации интерфейса как в Delphi. Есть интеграция с Qt. Screenshots.
libusb не смотрел, но все равно идея установки еще одного приложения пользователями сомнительна, а кроме него есть еще несколько библиотек которые последний раз лет 5 назад обновлялись. Кстати, есть еще вариант подключить usb устройство как виртуальный ком порт и далее уже использовать Java Communications API www.oracle.com/technetwork/java/index-jsp-141752.html (в теории).
Да и красивость GUI сильно сомнительна (по крайней мере у swing-а точно).
ЗЫ: сам как раз пару дней ломаю голову как с микроконтроллера получить данные, поэтому если все же решитесь писать на java буду рад увидеть выбранную реализацию.
java.comm можете даже не смотреть — плохо, очень плохо. Непотребно совершенно, к тому же заброшенно очень давно. Смотрите в сторону проекта rxtx, если уж именно java.
Не подскажете, насколько сложно сделать с помощью Java + SWT/JFace системноинтегрированным на различных платформах? Т.е. чтобы, например, под windows приложение выглядело как родное?
Приложения на SWT на всех платформах выглядят именно как родные. Для работы с последовательными портами уже советовали rxtx (хотя у меня у самого дело не дошло попробовать). Если не устраивает — можно вызывать системные функции через JNI, или же поудобнее, без писания Си-кода — через JNA (Java Native Access).
Eclipse RCP. ( Java c SWT)
работает на Win, Mac, Linux, Solaris. Боьшего и ненадо. Интерфейсы родные (по скольку SWT)
Есть куча уже готовых вещей за ранее ( по скольку строится на базе ядра Eclipse)
Можно даже потом засовывать в свою эклипсу и использовать как плагин внутри эклипсы