我正在使用 wxPython (wxAUI) 编写一个小型报告应用程序。我想将我的数据呈现为 HTML,以显示在 WebView“小部件”中。我正在寻找一个示例“hello world”片段,它将展示如何在 WebView 小部件中显示/渲染 HTML 字符串 - 但无法找到单个示例 - 并且 WebView 小部件似乎没有很好的文档记录。
有人可以提供这样一个示例的链接吗?或者(更好),在此处发布一个简短的片段来展示如何使用 WebView 小部件来呈现 HTML 字符串?
# sample html string to display in WebView widget
html_string = """
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Hello World!</title>
<script type="text/javascript" src="jquery.js"></script>
<style type="text/css" src="main.css"></style>
</head>
<body>
<span id="foo">The quick brown fox jumped over the lazy dog</span>
<script type="text/javascript">
$(document.ready(function(){
$("span#foo").click(function(){ alert('I was clicked!'); });
});
</script>
</body>
</html>
"""
这是一个对我有用的简单示例。
确保您正在运行 wxpython 的最新版本。 (wxpython 2.9)
import wx
import wx.html2
class MyBrowser(wx.Dialog):
def __init__(self, *args, **kwds):
wx.Dialog.__init__(self, *args, **kwds)
sizer = wx.BoxSizer(wx.VERTICAL)
self.browser = wx.html2.WebView.New(self)
sizer.Add(self.browser, 1, wx.EXPAND, 10)
self.SetSizer(sizer)
self.SetSize((700, 700))
if __name__ == '__main__':
app = wx.App()
dialog = MyBrowser(None, -1)
dialog.browser.LoadURL("http://www.google.com")
dialog.Show()
app.MainLoop()
我在阅读前两个条目后发布到此帖子,并在我的帖子中说了类似的话:
这里有答案,但没有回答问题。问题是:如何在浏览器中以字符串形式显示 HTML 文件 窗户?唯一的答案是打开浏览器 窗口,但从 url 获取数据并且不使用字符串内容。
但是后来我进一步研究了答案,我在这里发布了帖子并提出了原始问题的实际答案,即:如何从字符串中显示?:
如果将 html 字符串赋值复制到代码示例中,但替换行:
dialog.browser.LoadURL("http://www.google.com")
与:
dialog.browser.SetPage(html_string,"")
一切都应该按预期工作(从字符串(而不是 url)显示 html 页面)
分享并享受!