WxPython:无法在 MAC 中使用 WebKitCtrl.SetPageSource 加载 html

WxPython: Not able to load the html with WebKitCtrl.SetPageSource in MAC

我有一种情况需要在 MAC 的 wxPython 面板中加载 "html" 源代码。

我在下面粘贴类似的代码。

这工作得很好:(在 Wx.Frame 上加载)

classTry_Webkit(wx.Frame): def init(self, parent, id, title): wx.Frame.init(self, parent, id, title)

    sizer = wx.BoxSizer(wx.VERTICAL)
    content_box = wx.BoxSizer(wx.VERTICAL)

    webkit = wx.webkit.WebKitCtrl(self, -1)
    webkit.SetPageSource(source)
    self.Show(True)

下面的代码无效(wx.Panel,不会加载任何内容,看起来是空白页面)

classTry_Webkit(wx.Frame): def init(self, parent, id, title): wx.Frame.init(self, parent, id, title)

    panel = wx.Panel(self)

    sizer = wx.BoxSizer(wx.VERTICAL)
    content_box = wx.BoxSizer(wx.VERTICAL)

    webkit = wx.webkit.WebKitCtrl(panel, -1)
    webkit.SetPageSource(source)
    self.Show(True)

WxPython版本:2.8.11.0 MAC : 埃尔卡皮坦 10.11.3

如何将 html 源加载到面板中?

您没有做任何事情来管理 webkit 控件的大小,因此它保持非常小的默认大小。如果你像下面那样使用你的 sizer,那么你会看到它像我认为的那样工作。

import wx
import wx.webkit

source = """\
<html><body>
<h1>Hello world</h1>
</body></html>
"""

class Try_Webkit(wx.Frame):
    def __init__(self, parent, id, title):
        wx.Frame.__init__(self, parent, id, title)
        panel = wx.Panel(self)
        sizer = wx.BoxSizer(wx.VERTICAL)

        webkit = wx.webkit.WebKitCtrl(panel, -1, size=(200,200))
        webkit.SetPageSource(source)
        sizer.Add(webkit, 1, wx.EXPAND)
        panel.SetSizer(sizer)


app = wx.App()
frm = Try_Webkit(None, -1, "Try Webkit")
frm.Show()
app.MainLoop()