我正在尝试将https网址加载到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页面(或其他一些用于呈现ssl页面的wxWindow方式)?
我正在使用wx 2.8.10,目前升级不是真正的选项
答案 0 :(得分:1)
您可以使用urllib2.urlopen
之类的现有方法下载文件,并将文件保存到文件系统,然后将该文件名传递给HtmlWindow的LoadPage方法。
现有方法的示例包含在以下StackOverflow问题中,HTTPS connection Python 和How do I download a file over HTTP using Python?
其他更复杂的选项涉及使用wxIE和wxMozilla,一旦下载或编译了Python绑定。
答案 1 :(得分: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()