Why does not my wx.html.HtmlWindow work?

kyosohma at gmail.com kyosohma at gmail.com
Mon Apr 9 16:29:46 CEST 2007


On Apr 8, 8:31 pm, "liqfem... at gmail.com" <liqfem... at gmail.com> wrote:
> On Apr 9, 1:01 am, Rob Williscroft <r... at freenet.co.uk> wrote:
>
>
>
> > liqfem... at gmail.com wrote innews:1176003505.794328.62170 at n76g2000hsh.googlegroups.comin
> > comp.lang.python:
>
> > > Below are my source code:
>
> > > import wx
> > > import wx.html
>
> > > class MyHtmlFrame(wx.Frame):
>
> > >     def __init__(self, parent, title):
> > >         wx.Frame.__init__(self, parent, -1, title, size=(600,400))
> > >         html = wx.html.HtmlWindow (self)
> > >         if "gtk2" in wx.PlatformInfo:
> > >             html.SetStandardFonts()
> > >         html.LoadPage("
> > >        http://www.pythonthreads.com/articles/python/incorporating-into
> > >         -wxpython-part-1.html")
>
> > > app = wx.PySimpleApp()
> > > frm = MyHtmlFrame(None, "Simple HTML Browser")
> > > frm.Show()
> > > app.MainLoop()
>
> > > It is just an example in the book "wxPython in action". But every time
> > > when I try to get it run, my CPU is fully occupied, and there is no
> > > frame that comes into existence. Why?
>
> > I think your problem is that you call LoadPage before app.MainLoop() is
> > called, IOW you need to call LoadPage in an event handler:
>
> > import wx
> > import wx.html
>
> > class MyHtmlFrame(wx.Frame):
>
> >     HOME = "http://www.google.co.uk"
>
> >     def __init__(self, parent, title):
> >         wx.Frame.__init__(self, parent, -1, title, size=(600,400))
> >         self.html = wx.html.HtmlWindow (self)
> >         if "gtk2" in wx.PlatformInfo:
> >             self.html.SetStandardFonts()
> >         self.done_show = False
> >         wx.EVT_IDLE( self, self.OnShow )
> >         self.html.SetPage(
> >             "<a href='%s'>Loading ...</a>" % self.HOME
> >           )
>
> >     def OnShow( self, event ):
> >         if self.done_show:
> >           return
> >         self.done_show = True
> >         self.html.LoadPage( self.HOME )
>
> > app = wx.PySimpleApp()
> > frm = MyHtmlFrame(None, "Simple HTML Browser")
> > frm.Show()
> > app.MainLoop()
>
> > Note: the URL you loading takes ages to show, which is why I
> > use:http://www.google.co.ukabove.
>
> > Rob.
> > --http://www.victim-prime.dsl.pipex.com/
>
> To Rob Williscroft,
>
> It works when I call LoadPage() in any event handler, though I don't
> know the reason. I'll try to learn it.
> Thank you.
> And the example in the book "wxPython In Action" is wrong?

I know some of the examples from the book are no longer current, but I
cannot recall if the HtmlWindow one was one of them or not. You can
ask at the wxPython users group. Robin Dunn (one of the authors of the
book) is one of the moderators there. http://wxpython.org/maillist.php

I recommend using the examples in the wxPython Demo as they are
usually the most current.

Mike




More information about the Python-list mailing list