2

我正在尝试将 https url 加载到 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 页面(或其他一些 in-a-wxWindow 方式来呈现 ssl 页面)?

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

4

2 回答 2

1

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

以下 StackOverflow 问题、HTTPS 连接 Python如何使用 Python 通过 HTTP 下载文件?

一旦您下载或编译了 Python 绑定,其他更复杂的选项涉及使用 wxIE 和 wxMozilla。

于 2014-05-06T04:09:01.773 回答
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()
于 2014-05-12T15:57:13.120 回答