如何编写一个使用HTML和CSS作为用户界面的桌面应用程序,并使用Python/Perl/C++/Java进行处理?

12 投票
10 回答
4949 浏览
提问于 2025-04-16 04:51

不同的编程语言有不同的图形用户界面(GUI)工具包,但要做出像用HTML和CSS那样好看且省力的用户界面,似乎很难。 我不想用JavaScript来做我的应用,因为我不确定它是否有我需要的所有库,我想用Python来做。

我该如何在Python中使用像Gecko、WebKit这样的渲染引擎?哪个更适合和Python一起使用?有没有那种只用HTML和CSS的渲染引擎,不需要JavaScript?

在Python中写DOM事件的事件处理程序和操作DOM会容易吗?

10 个回答

1

远程控制工具包 基本上就是做这个的。它让你可以写桌面应用程序风格的应用,但这些应用会在浏览器里显示。

虽然它试图为你隐藏一些 HTML、CSS 和 JavaScript 的细节,但你仍然可以用 HTML5、CSS 和 JavaScript 提供的各种功能来扩展这个系统,添加新的小部件或者改进已有的小部件。

和 Pyjamas 或 GWT 不同的是,它并不会把代码编译成 JavaScript。你的代码仍然在服务器上运行,你可以做你习惯做的任何事情,比如打开文件、建立连接、保持状态等等。

1

有几种方法可以实现这个功能:最简单的可能就是使用 Adobe AIR,它基本上是一个Webkit渲染引擎,配上一个增强版的JavaScript引擎,这样你就可以编写更复杂的功能了。

另外,你也可以看看 wxWebConnect 项目,这个项目的目标是帮助“开发者快速将高级网页浏览器功能整合到自己的应用程序中”。它是作为一个wxWidgets控制库提供的,大多数Python开发者应该对这个不陌生。它将Mozilla的Gecko渲染引擎集成到你的应用中。

0

更新:这是一个旧的回答,现在你可能会想在你的应用里使用嵌入式浏览器(比如webkit项目等),但在写这篇的时候还没有这样的技术。不过,如果你不想让你的应用包体积增加很多,这个回答依然适用。


找一个轻量级的服务器,或者更好的是——把一个服务器嵌入到你的应用里。就这么简单。

Java有一些类可以用来提供http服务,Python也做得很好。

可以看看mercurial的hg serve是怎么工作的。[python]

我曾经做过一个小应用,通过http在本地提供aspell拼写检查功能,使用的是Java的httprequest类。[在Windows和Linux上都能用]

把你的应用做成一个服务器,输出一些html,并使用POST请求来执行操作。界面部分用HTML+CSS+JS来做。简单又好。

运行后,指引用户去localhost:somesillyport,或者触发在浏览器中打开localhost:somesillyport。

撰写回答