как написать настольное приложение, которое использует HTML и CSS для пользовательского интерфейса и python / perl/c++ / java для обработки?
Различные языки имеют различные наборы инструментов GUI, но это выглядит очень трудно достичь привлекательных пользовательских интерфейсов так хорошо, как мы можем, используя HTML и CSS с меньшими усилиями.
Я не делаю свое приложение на javascript, так как сомневаюсь, что у него есть все необходимые библиотеки, и я хочу сделать это на python.
Как использовать движки рендеринга, такие как gecko, webkit и т. д. В python? Которые будут более приспособлены для работы с Python?.Есть только движок рендеринга HTML и CSS без JavaScript-код?
Будет ли легко писать обработчики событий для событий DOM и управлять DOM в python?
10 ответов:
обновление: это старый ответ, в настоящее время вы хотите пойти со встроенным браузером в вашем приложении (*проекты webkit и т. д.), но на момент написания этой книги такой технологии не существовало. Ответ все еще действителен, если вы не хотите добавлять достаточно много мегабайт в ваше упакованное приложение.
Найдите облегченный сервер, или лучше - внедрите в свое приложение. Вот и все.
Java имеет классы для обслуживания http. Питон тоже делает это хорошо.
См. ртутьсодержащая подача ртути работает. [python]
Однажды я сделал крошечное приложение, которое обслуживало проверку правописания aspell через http на localhost в java с классом httprequest. [работал над win и linux]
Создайте приложение как сервер, который выводит некоторый html и использует POST для выполнения действий. Сделайте интерфейс в HTML + CSS+JS. Легко и приятно.
После запуска укажите пользователю localhost: somesillyport или триггер, открывающий localhost: somesillyport в браузере.
Есть несколько способов, которыми вы можете это сделать: наиболее простым, вероятно, будет использовать что-то вроде Adobe AIR, который в основном представляет собой движок рендеринга Webkit с расширенным движком javascript, который позволяет программировать в более сложных функциональных возможностях.
В противном случае вы можете проверить проект wxWebConnect, который направлен на то, чтобы "разработчики могли быстро интегрировать расширенные возможности веб-браузера в свои собственные приложения.- и есть предоставляется как библиотека управления wxWidgets, с которой большинство разработчиков python должны быть знакомы. Он интегрирует движок рендеринга Mozilla Gecko в ваше приложение.
Remote Control Toolkit делает это, в основном. Он позволяет писать приложения в стиле рабочего стола (программирования), которые отображаются на дисплее браузера.
Несмотря на то, что он пытается скрыть детали html/css/js для вас, вы можете расширить систему с помощью новых виджетов или расширить существующие, используя в основном все, что предлагает html(5), css, js.
В отличие от Pyjamas или GWT, он не компилируется в javascript. Ваш код остается на стороне сервера, и вы можете делать практически все, что вы есть используется для выполнения (открытие файлов, открытие соединений, сохранение состояния и т. д.)
Чтобы дополнить варианты, уже заданные другими:
Некоторые привязки webkit:
- qtwebkit (для pyqt или pyside)
- wxwebkit (еще не совсем готов, но есть пререлиз для wxpython)
- pywebkitgtk (Не знаю, как легко его получить на Windows)
Что касается gecko/mozilla, вы можете взглянуть на PyXPCOM, вероятно, через pyxpcomext. Разница здесь - Если я правильно понимаю - это означает, что вместо того, чтобы использовать mozilla изнутри python, python внедряется в mozilla. Но это должно быть возможно сделать приложение xulrunner, которое может использовать python.
Вы должны проверить проект Mozilla XUL. Это позволяет создавать приложения с легкостью HTML и "стиль" GUI с фактическим CSS.
Если бы вы спросили о каком-то конкретном языке, я бы оставил этот ответ в качестве комментария, а не полноценного вопроса. Однако вопрос этот чрезвычайно широк... вопрос об использовании интерфейса HTML / CSS на одном из четырех внутренних языков.
В этом случае вам нужно просто выполнить серию веб-поисков по:
"html renderer" [insert-language-here]... и потратьте некоторое время на просмотр различных вариантов, доступных для встраивания интерфейса HTML / CSS в приложения языке.
В конечном счете, вы, скорее всего, будете использовать визуализатор Gecko от Mozilla... либо в сыром виде, либо косвенно через одну из многочисленных библиотек, которые предоставляют dev-дружественные оболочки вокруг него.
Говоря о технологиях Mozilla, вы также можете проверить XULRunner (позволяет легко скинуть пользовательский интерфейс с помощью XML с CSS и JavaScript), или, возможно, даже Prism (берет приложение, работающее на HTTP-сервере, и представляет его пользователю). пользователь в качестве настольного приложения).
Если вы пишете на Java, посмотрите на JavaFX. С официального сайта:
Встроенный браузер позволяет выполнять следующие задачи в ваши приложения JavaFX:
Render HTML content from local and remote URLs Obtain Web history Execute JavaScript commands Perform upcalls from JavaScript to JavaFX Manage web pop-up windows Apply effects to the embedded browser
Если вы собираетесь перенести его в windows, я настоятельно рекомендую HTMLLayout
- они позволяют писать пользовательский интерфейс в HTML и CSS, и вы можете иметь свой код обработки в C++ для его обработки.
- Он также позволяет писать сценарии проверки в TI script (например, Java Script) для проверки входных данных перед их обработкой.
Размер двоичного файла был чуть меньше 1 МБ, так что вы можете легко упаковать его вместе с вашими двоичными файлами.- Это был открытый исходный код / бесплатно использовать.
- Он также позволит вам делать анимации на основе TIScript/CSS.
Насколько мне известно, он лучше всего подходит для разработки графических приложений на Windows.
Check Sciter, он был разработан как точно встраиваемый HTML/CSS/scripting engine для использования в качестве пользовательского слоя настольных приложений.
Вы также можете найти введение в технологию Sciter статью о CodeProject полезной.
Sciter содержит TIScript на борту, что почти "Python, но с синтаксисом JavaScript".
Вы можете встроить компонент веб-браузера в свое настольное приложение Java Swing/JavaFX, которое отображает графический интерфейс, построенный с использованием HTML5 + CSS+JavaScript. Вы можете посмотреть статью, которая описывает, как это сделать в http://java.dzone.com/articles/htmlcssjavascript-gui-java-0
Одной из библиотек Java Swing/JavaFX, которая позволяет встраивать Chromium в Java-приложения, является JxBrowser. С помощью JXBROWSER API вы можете загрузить любую веб-страницу и работать с ее DOM и JavaScript. Вы даже можете позвонить Методы Java из кода JavaScript и наоборот. Например:
import com.teamdev.jxbrowser.chromium.Browser; import com.teamdev.jxbrowser.chromium.BrowserFunction; import com.teamdev.jxbrowser.chromium.JSValue; import com.teamdev.jxbrowser.chromium.events.FinishLoadingEvent; import com.teamdev.jxbrowser.chromium.events.LoadAdapter; public class JavaScriptJavaSample { public static void main(String[] args) { Browser browser = new Browser(); browser.registerFunction("MyFunction", new BrowserFunction() { public JSValue invoke(JSValue... args) { for (JSValue arg : args) { System.out.println("arg = " + arg); } return JSValue.create("Hello!"); } }); browser.addLoadListener(new LoadAdapter() { @Override public void onFinishLoadingFrame(FinishLoadingEvent event) { if (event.isMainFrame()) { Browser browser = event.getBrowser(); JSValue returnValue = browser.executeJavaScriptAndReturnValue( "MyFunction('Hello JxBrowser!', 1, 2, 3, true);"); System.out.println("return value = " + returnValue); } } }); browser.loadURL("about:blank"); } }
Comments