如何编写一个使用HTML和CSS作为用户界面的桌面应用程序,并使用Python/Perl/C++/Java进行处理?
不同的编程语言有不同的图形用户界面(GUI)工具包,但要做出像用HTML和CSS那样好看且省力的用户界面,似乎很难。 我不想用JavaScript来做我的应用,因为我不确定它是否有我需要的所有库,我想用Python来做。
我该如何在Python中使用像Gecko、WebKit这样的渲染引擎?哪个更适合和Python一起使用?有没有那种只用HTML和CSS的渲染引擎,不需要JavaScript?
在Python中写DOM事件的事件处理程序和操作DOM会容易吗?
10 个回答
远程控制工具包 基本上就是做这个的。它让你可以写桌面应用程序风格的应用,但这些应用会在浏览器里显示。
虽然它试图为你隐藏一些 HTML、CSS 和 JavaScript 的细节,但你仍然可以用 HTML5、CSS 和 JavaScript 提供的各种功能来扩展这个系统,添加新的小部件或者改进已有的小部件。
和 Pyjamas 或 GWT 不同的是,它并不会把代码编译成 JavaScript。你的代码仍然在服务器上运行,你可以做你习惯做的任何事情,比如打开文件、建立连接、保持状态等等。
有几种方法可以实现这个功能:最简单的可能就是使用 Adobe AIR,它基本上是一个Webkit渲染引擎,配上一个增强版的JavaScript引擎,这样你就可以编写更复杂的功能了。
另外,你也可以看看 wxWebConnect 项目,这个项目的目标是帮助“开发者快速将高级网页浏览器功能整合到自己的应用程序中”。它是作为一个wxWidgets控制库提供的,大多数Python开发者应该对这个不陌生。它将Mozilla的Gecko渲染引擎集成到你的应用中。
更新:这是一个旧的回答,现在你可能会想在你的应用里使用嵌入式浏览器(比如webkit项目等),但在写这篇的时候还没有这样的技术。不过,如果你不想让你的应用包体积增加很多,这个回答依然适用。
找一个轻量级的服务器,或者更好的是——把一个服务器嵌入到你的应用里。就这么简单。
Java有一些类可以用来提供http服务,Python也做得很好。
可以看看mercurial的hg serve是怎么工作的。[python]
我曾经做过一个小应用,通过http在本地提供aspell拼写检查功能,使用的是Java的httprequest类。[在Windows和Linux上都能用]
把你的应用做成一个服务器,输出一些html,并使用POST请求来执行操作。界面部分用HTML+CSS+JS来做。简单又好。
运行后,指引用户去localhost:somesillyport,或者触发在浏览器中打开localhost:somesillyport。