2014-04-30 163 views
2

我想一个HTTPS URL加载到HTMLWindow加载HTTPS网页到wx.html.HTMLWindow

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() 

     wx.CallAfter(html.LoadPage, "https://www.google.com")#Fails to load page 
     #but the following works ... 
     #wx.CallAfter(html.LoadPage, "http://www.google.com")#Works Fine! 


app = wx.PySimpleApp() 
frm = MyHtmlFrame(None, "Simple HTML Browser") 
frm.Show() 
app.MainLoop() 

有没有办法来加载HTMLWindow一个SSL页面(或其他一些在-A-wxWindow的呈现ssl页面的方式)?

我使用WX 2.8.10,升级是不是一个真正的选择目前

+0

您可以使用该解决方案['的WebView '](http://wxpython.org/Phoenix/docs/html/html2.WebView.html)而不是? – lmjohns3

+0

不幸的是,除非有一个Python包,只是给了我(我使用2.8.10,并没有到2.9.3左右,真的不能更新...) –

+0

@ lmjohns3感谢它的灵感看起来像伊文将工作得很好,这是有点simillar(因为即时通讯在Windows ...我宁愿让一些更便携,但meh) –

回答

1

我真的很想答应我的赏金的人,但真的在这里是lmjohns导致我太...之类的...的解决方法是使用wx IEWin

import wx 
import wx.lib.iewin as iewin 
class MyBrowser(wx.Dialog): 
    def __init__(self, *args, **kwds): 
    wx.Dialog.__init__(self, *args, **kwds) 
    sizer = wx.BoxSizer(wx.VERTICAL) 
    self.browser = iewin.IEHtmlWindow(self) 
    sizer.Add(self.browser, 1, wx.EXPAND, 10) 
    self.SetSizer(sizer) 
    self.SetSize((850, 730)) 
    def load(self,uri): 
     self.browser.Navigate(uri) 

if __name__ == '__main__': 
    app = wx.App() 
    dialog = MyBrowser(None, -1) 
    dialog.browser.Navigate("https://www.google.com") 
    dialog.Show() 
    app.MainLoop() 
1

您可以使用现有的方法类似urllib2.urlopen刚才下载的文件,并将该文件保存到文件系统,然后传递文件名HtmlWindow的LoadPage方法。现有方法

例子覆盖在下面的StackOverflow问题,HTTPS connection PythonHow do I download a file over HTTP using Python?是更复杂

其他选项包括使用wxIE和wxMozilla,一旦你已经下载或编译的Python绑定。

+0

wxIE内置...我不能只是下载,因为我实际上需要谈的页面是一个窗体需要提交+1的建议都一样:) –