#!/usr/bin/python import urllib from wxPython import wx from wxPython.wx import wxImageFromStream, wxBitmapFromImage, wxTimer, wxInitAllImageHandlers from cStringIO import StringIO import wx url = 'http://www.welikesheep.com/archives/lucyliu.jpg' class MyImage(wx.Image): print "reading" print url fp = urllib.urlopen(url) data = fp.read() fp.close() img = wx.ImageFromStream(StringIO(data)) img.Rescale (640,480) class MyPanel(wx.Panel): def OnPaint(self, event): print "painting" print url dc = wx.PaintDC(self) dc.DrawBitmap(self.bitmap, 0, 30) def OnTimer(self, event): #print url self.bitmap=wxBitmapFromImage(MyImage.img) self.Refresh() wx.EVT_PAINT(self, self.OnPaint) class MyFrame(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title, size = (640,520)) ZePanel=MyPanel(self,-1) ZePanel.timer = wx.Timer(ZePanel) ZePanel.Bind(wx.EVT_TIMER, ZePanel.OnTimer, ZePanel.timer) ZePanel.timer.Start(1000) ZePanel.bitmap=wxBitmapFromImage(MyImage.img) newURL=wx.TextCtrl(ZePanel, -1, "Cam URL", (0,0), size=(639, -1), style=wx.TE_PROCESS_ENTER) self.Bind(wx.EVT_TEXT_ENTER, self.EvtTextEnter, newURL) wx.EVT_PAINT(ZePanel, ZePanel.OnPaint) def EvtTextEnter(self,event): global url url=event.GetString() event.Skip() class MyApp(wx.App): def OnInit(self): wxInitAllImageHandlers() frame = MyFrame(None, -1, 'CamView') frame.Show(True) self.SetTopWindow(frame) return True app = MyApp(0) app.MainLoop()