Кроссплатформенность, язык разметки GUI Язык разметки?
Я изучил Swing в тот день, но теперь я перешел на Python и хочу создать несколько приложений с графическим интерфейсом. У меня не было времени для изучения нового GUI API, поэтому я использую Jython, но я бы предпочел использовать CPython.
Было бы здорово, если бы у меня была одна простая разметка, которая позволяла бы мне переключать библиотеки GUI. Было бы еще лучше, если бы я мог использовать один и тот же язык разметки для разных языков, чтобы я мог быстро создавать GUI для любого языка, который я использую. Кто-нибудь знает такую разметку / библиотеку?
Я видел разметки, такие как разметка Glade и wxWidget (я забыл название). Они отчасти то, что я ищу (создание GUI без кодирования на языке), но они переплетены с определенной библиотекой. И ни один из них не очень приятен на вид и не дружит с человеком.
10 ответов
Эээ... HTML? (пытаясь быть смешным здесь... пока мы ждем реальных ответов..)
http://en.wikipedia.org/wiki/Qt_(toolkit)">Qt (произносится "мило" его создателями [1]) - это кроссплатформенная среда разработки приложений, широко используемая для разработки программ с графическим интерфейсом.
Qt использует C++ с несколькими нестандартными расширениями, реализованными дополнительным препроцессором, который генерирует стандартный код C++ перед компиляцией. Qt также может использоваться в нескольких других языках программирования; привязки существуют для Ada (QtAda) [4], C ** # ** (Qyoto / Kimono) [5], Java (Qt Jambi) [6], Pascal, Perl, PHP (PHP-Qt), Ruby (RubyQt) и Python (PyQt). Он работает на всех основных платформах и имеет широкую поддержку интернационализации. Не-GUI функции включают доступ к базе данных SQL, синтаксический анализ XML, управление потоками, поддержку сети и унифицированный кроссплатформенный API для обработки файлов.
Я серьезно сомневаюсь, что вы найдете язык разметки для GIU, который не привязан к конкретной библиотеке. Чтобы такая вещь существовала, необходим стандартизированный язык разметки GUI с несколькими реализациями.
Язык интерфейса пользователя XML. Не знаю много об этом, поэтому не уверен, что он соответствует вашим желаниям. Отпишитесь с вашим опытом, если вы играете с ним.
Не уверен, что это то, что вы ищете, но есть Glade (или загрузка для Windows), которая является дизайнером для GTK+. Он генерирует XML-файл, который затем можно использовать для создания графического интерфейса на нескольких разных языках.
Библиотека wxWidgets (ранее известная как wxWindows) может быть тем, что вы ищете. Особенно хороший порт для Python, wxPython, а также версий для разных языков - C#, C++, Perl и Ruby - и для различных графических интерфейсов: Win32, Mac OS X, GTK+, X11, Motif, WinCE. Библиотека уже давно и довольно солидная.
@Cristian и Antony Cramp: хотя XUL является хорошим выбором для разработки пользовательского интерфейса (кросс-платформенный, с открытым исходным кодом, используется в Firefox и других основных программах), он, безусловно, не зависит от языка. Вы привязаны к Gecko, с JS для сценариев. Существует экспериментальная поддержка сценариев Python, но только экспериментальная, AFAIK.
Вы можете определить пользовательский интерфейс в XUL+JS и использовать внутренние компоненты, написанные на C++ (также доступны мосты Python и Java).
Если вы переключитесь на.NET, то сможете использовать общий язык графического интерфейса, например Razor в MVC (если вы занимаетесь веб-разработкой), и можете выбрать C# или VB или ряд других языков.
Я немного прочитал о XML User Interface Language (XUL), и он выглядит действительно надежным и хорошо поддерживаемым. Основная проблема для меня заключается в том, что он привязан к движку рендеринга Gecko, поэтому он кросс-платформенный, как wxWidgets, QT и GTK+ кроссплатформенные. Кроме того, там привязки Python не так хороши, как в других библиотеках.
GladeXML и XRC кажутся лучшими наценками
Я бы пошел с XSLT, поэтому он может быть встроен и в другие интерфейсы.