Я пытаюсь записать межплатформенное приложение GUI, которое было бы развернуто на Windows, Mac OS X и Linux. Мои требования:
На основе этих требований я сузил выбор инструментариев к QT и wxWidgets, начиная ни с одного из других инструментариев, о которых я знаю (включая Swing Java и SWT, Flex, AIR, и т.д.) удовлетворяют "собственно выглядящее" требование. Среди этих двух заключительных соперников QT, кажется, предлагает лучшую поддержку приложений, что собственный компонент стиля на всех трех из моих платформ развертывания, но я готов рассмотреть мнения об обратном.
Я предпочел бы не использовать C++ в качестве языка реализации, но я не уверен, существуют ли какие-либо практические альтернативы. Моя самая большая озабоченность по поводу использования языка реализации кроме C++ является проблемой развертывания. Как обсуждено в статье Ars Technica, PyQt не отвечает "простому развертыванию' требование ни в каком практическом смысле, и я подозреваю, что большинство других привязок к языку для QT пострадало бы от тех же проблем развертывания (по крайней мере, на Mac OS X). Java (или Scala) с QtJambi? QtRuby? wxPython?
Кто-либо знает о какой-либо комбинации языка и инструментария, который удовлетворяет все три из указанных выше требований?
PyQt не отвечает требованию «простого развертывания» ни в каком практическом смысле ...
Python (и любой другой язык с реализацией по умолчанию как интерпретатор) сложно развернуть в обычном смысле (я имею в виду в виде отдельных исполняемых файлов).
Так что, вероятно, у вас есть 2 варианта:
Java / SWT - один из хороших вариантов. Вы можете найти много информации об этом здесь .
wxWidgets довольно хорош и содержит некоторый код, не связанный с графическим интерфейсом пользователя (вопреки тому, что сказал kemiisto): потоки, сокеты и т. Д.
Хорошая особенность wxWidgets заключается в том, что wxPython на самом деле довольно легко развернуть в OS X Есть и другие языковые привязки для wx, но wxPython, вероятно, одна из самых старых.
Java действительно поддерживает приложения, выглядящие "как родные", с помощью SystemLookAndFeel. Самый быстрый способ попробовать - вызвать следующее при запуске приложения.
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
Посмотрите здесь более подробную информацию о доступных Look и Feel в Java.
http://java.sun.com/docs/books/tutorial/uiswing/lookandfeel/plaf.html
.Net (C # или VB.Net) - это то, что я бы использовал для этого (на самом деле, это - это то, что я использую для своего собственного приложения). Благодаря проекту Mono приложения .Net могут работать на Mac и Linux, а также в Windows без каких-либо изменений кода (если вы не вызываете функции Windows API). Вам даже не нужно компилировать разные версии вашей программы: один и тот же EXE будет работать на всех платформах.
Вы смотрели Xojo ? Он определенно соответствует всем трем вашим требованиям, и его намного проще изучить и использовать, чем C ++.