Пример wxPython WebView
Я пишу небольшое приложение для создания отчетов с использованием wxPython (wxAUI). Я хочу отобразить мои данные в виде HTML, чтобы они отображались в "виджете" WebView. Я ищу пример фрагмента "Привет, мир", который покажет, как отображать / отображать строку HTML в виджете WebView, но не смог найти ни одного примера, а виджет 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>
"""
2 ответа
Это простой пример, который работает для меня.
Убедитесь, что вы используете последнюю версию 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,"")
Все должно работать как нужно (отображение html-страницы из строки (вместо url))
Поделитесь и наслаждайтесь!