编写环境:
1、ActivePython-2.7.2.5-win32-x86
2、wxPython2.8-win32-unicode-2.8.12.1-py27
3、wxFormBuilder_v3.3.3-beta
以下代码是演示怎样利用IEHtmlWindow载入网页,并实现打印预览和打印的的功能:
#coding:utf-8 import wx from wx.lib import iewin class MyFrame ( wx.Frame ): def __init__( self, parent ): wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 674,421 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL ) self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize ) self.menu = wx.MenuBar( 0 ) self.menu1 = wx.Menu() self.LoadPage = wx.MenuItem( self.menu1, wx.ID_ANY, u"打开文件", wx.EmptyString, wx.ITEM_NORMAL ) self.menu1.AppendItem( self.LoadPage ) self.PrintPreview = wx.MenuItem( self.menu1, wx.ID_ANY, u"打印预览", wx.EmptyString, wx.ITEM_NORMAL ) self.menu1.AppendItem( self.PrintPreview ) self.Print = wx.MenuItem( self.menu1, wx.ID_ANY, u"打印", wx.EmptyString, wx.ITEM_NORMAL ) self.menu1.AppendItem( self.Print ) self.menu.Append( self.menu1, u"文件" ) self.SetMenuBar( self.menu ) bSizer = wx.BoxSizer( wx.VERTICAL ) self.ie = iewin.IEHtmlWindow(self) self.ie.AddEventSink(self) bSizer.Add( self.ie, 1, wx.EXPAND, 5 ) self.Centre( wx.BOTH ) # Connect Events self.Bind( wx.EVT_MENU, self.LoadPageOnMenuSelection, id = self.LoadPage.GetId() ) self.Bind( wx.EVT_MENU, self.PrintPreviewOnMenuSelection, id = self.PrintPreview.GetId() ) self.Bind( wx.EVT_MENU, self.PrintOnMenuSelection, id = self.Print.GetId() ) def __del__( self ): pass def DocumentComplete(self,this,pDisp,URL): print 'Done' # Virtual event handlers, overide them in your derived class def LoadPageOnMenuSelection( self, event ): #self.ie.Navigate("http://baidu.com/") # your URL here #self.ie.LoadUrl('http://www.baidu.com') #self.ie.LoadStream(page) #self.ie.LoadString(page) loadstring = u''' <html> <body> <p align="center"><font face="华文琥珀" size="7" color="#CC3300">这是一个简单的测试……</font></p> </body> </html> ''' self.ie.LoadString(loadstring) #import StringIO #self. ie.LoadStream( StringIO.StringIO( page.decode("utf8") ) ) #file = open('index2.htm') #self. ie.LoadStream(file) #file.close() event.Skip() def PrintPreviewOnMenuSelection( self, event ): self.ie.PrintPreview() event.Skip() def PrintOnMenuSelection( self, event ): self.ie.Print(True) event.Skip() app = wx.PySimpleApp() frm = MyFrame(None) frm.Maximize() frm.Show() app.MainLoop()