как написать настольное приложение, которое использует HTML и CSS для пользовательского интерфейса и python / perl/c++ / java для обработки?



Различные языки имеют различные наборы инструментов GUI, но это выглядит очень трудно достичь привлекательных пользовательских интерфейсов так хорошо, как мы можем, используя HTML и CSS с меньшими усилиями.
Я не делаю свое приложение на javascript, так как сомневаюсь, что у него есть все необходимые библиотеки, и я хочу сделать это на python.



Как использовать движки рендеринга, такие как gecko, webkit и т. д. В python? Которые будут более приспособлены для работы с Python?.Есть только движок рендеринга HTML и CSS без JavaScript-код?



Будет ли легко писать обработчики событий для событий DOM и управлять DOM в python?

606   10  

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

  1. они позволяют писать пользовательский интерфейс в HTML и CSS, и вы можете иметь свой код обработки в C++ для его обработки.
  2. Он также позволяет писать сценарии проверки в TI script (например, Java Script) для проверки входных данных перед их обработкой.
  3. Размер двоичного файла был чуть меньше 1 МБ, так что вы можете легко упаковать его вместе с вашими двоичными файлами.
  4. Это был открытый исходный код / бесплатно использовать.
  5. Он также позволит вам делать анимации на основе 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

    Ничего не найдено.