Пример 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>
"""

Ответ 1

Это простой пример, который работает для меня.

Убедитесь, что вы используете версию последней версии 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() 

Ответ 2

Я прочитал эту тему после прочтения первых двух записей, и в своем посте я сказал что-то вроде:

Здесь есть ответ, но он не отвечает на вопрос. Возник вопрос: как отобразить HTML файл в строке в браузере? окно? Единственный ответ открывает браузер window, но получает данные из URL-адреса и не использует содержимое строки.

Но потом я исследовал ответ дальше, я взял сообщения здесь и придумал фактический ответ на исходный вопрос, который был: Как отобразить из строки?:

Если вы скопируете присвоение строки html в образец кода, но замените строку:

  dialog.browser.LoadURL("http://www.google.com") 

с:

  dialog.browser.SetPage(html_string,"")

Все должно работать по желанию (отображение html-страницы из строки (вместо url))

Поделитесь и наслаждайтесь!