使用Python编写轻量级的HTML与CSS渲染器

16
抱歉,也许我第一次没有很好地描述问题。你们所有的答案都很有趣,但是它们大部分都是几乎具备完整功能的网络浏览器,而我的任务要简单得多。
我计划使用Linux可用的GUI框架之一编写GUI应用程序(我还没有选择任何一个)。我将在我的应用程序中使用HTML来呈现具有某些属性(不同的字体等)的文本,这些属性存储在CSS中。
HTML将由我的应用程序生成,因此唯一的任务就是渲染HTML / CSS字符串。是否有小部件只能执行该渲染而没有任何其他功能 - 没有历史记录,没有书签,没有URL加载等?如果没有,我将使用你们建议的其中之一 - 没问题 - 但我只是想知道是否有仅包含HTML渲染器而没有任何额外功能的东西。

QWebView应该是你要找的,它可以渲染HTML。你看了我链接的文档吗? - mandel
是的,我试过了。但那不完全是我想要的:它几乎是一个能够加载网页、存储历史等的网络浏览器。无论如何,非常感谢,如果我找不到其他解决方案,我会使用它的。 - netimen
也许 QWebPage 可以解决问题,但我从未尝试过。 - mandel
1
这个问题有更新的答案吗? - CpILL
3个回答

16

建议您使用一个 UI 框架:

另一种选择是通过以下方式打开操作系统默认的网络浏览器:

import webbrowser
url = 'http://www.python.org'

# Open URL in a new tab, if a browser window is already open.
webbrowser.open_new_tab(url + '/doc')

# Open URL in new window, raising the window if possible.
webbrowser.open_new(url)

您可以在这里找到有关webbrowser模块的更多信息。如果您正在寻找非常轻量级的东西,并且不依赖于框架并且可以在所有平台上运行,那么我认为使用操作系统浏览器可能是最简单的方法。使用Tk可能是另一种轻量级选项,不需要安装第三方框架。


不要忘记WxPython(http://www.wxpython.org/):演示如何在Windows上嵌入Internet Explorer和在Mac上嵌入WebKit。 - PhilS
@PhilS 网络浏览器Internet Explorer在Linux上不可用。此外它过于沉重。 - netimen

0

飞碟项目 -- 一个XHTML渲染器。

不,它不是Python。然而,它可以轻松地从Python中调用。


我能将它嵌入我的Python应用程序中吗? - netimen
@netimen:我不明白你的问题。你所说的“嵌入”是什么意思?Flying saucer是Java。你可以轻松地从Python中调用Java程序。那算是“嵌入”吗?你可以使用Jython JVM来运行两个组件。那算是“嵌入”吗? - S.Lott
我的意思是,我想将HTML渲染到我的应用程序窗口中 - 我可以这样做吗? - netimen
嗯...我真的不明白你的问题。 如果你有一个“应用程序”,它有窗口、框架和面板,对吧?几乎所有的GUI框架都具有HTML渲染能力。由于你的问题没有提到你正在使用哪个框架,请更新你的问题,明确说明你的应用程序使用的是哪个GUI框架。如果你的应用程序没有使用GUI框架,请更新你的问题以解释你正在做什么。 - S.Lott
抱歉解释不够清楚。我没有提及任何框架,因为我目前只是在规划我的应用程序,所以我还没有选择框架。但是将会有一个带有窗口和面板的应用程序。 问题在于GUI框架的HTML渲染能力要么太弱(wx.HtmlWindow不支持CSS),要么太强(pywebkitgtk几乎是一个完整的浏览器)。我试图找到一个好的平衡点。 - netimen
@netimen:请更新你的问题。请不要在评论中添加有用的信息。请更新你的问题,以便所有其他人都能看到这些信息。 - S.Lott

0

也许 HulaHop 对你来说很有趣(也可以与Pyjamas结合使用)。Mozilla Prism 项目也可能相关。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接