我正在 wxPython 中制作赫芬顿邮报 RSS 提要聚合器,但遇到了一些麻烦。在程序中,主 wx.Frame 中有两个面板:一个显示所有文章的列表,另一个显示用户选择的文章的 Web 视图。我还没有到那部分,所以我决定通过加载谷歌来测试网络视图小部件。但是,当我这样做时,我得到了一些奇怪的结果。以下是相关代码:
hbox = wx.BoxSizer(wx.HORIZONTAL)
listPanel = wx.Panel(self, -1, style=wx.SUNKEN_BORDER)
htmlPanel = wx.Panel(self, -1, style=wx.SUNKEN_BORDER)
browser = wx.html2.WebView.New(htmlPanel)
browser.LoadURL("http://www.google.com")
hbox.Add(listPanel, 1, wx.EXPAND)
hbox.Add(htmlPanel, 2, wx.EXPAND)
self.SetAutoLayout(True)
self.SetSizer(hbox)
self.Layout()
这是我得到的图片:
http://i.imgur.com/TVuKzRE.png
我似乎在左上角得到一个文本框,可能是谷歌搜索框?不知道它是什么或为什么我得到这个。如果有人碰巧看到我哪里出错了,我将非常感谢您的帮助。
编辑:
这是一些显示问题的可运行代码:
import wx
import wx.html2
class MainFrame(wx.Frame):
def __init__(self, *args, **kwargs):
super(MainFrame, self).__init__(*args, **kwargs)
self.InitUI()
self.Centre()
self.Show()
def InitUI(self):
hbox = wx.BoxSizer(wx.HORIZONTAL)
listPanel = wx.Panel(self, -1, style=wx.SUNKEN_BORDER) #This is the panel where the news articles would be shown
htmlPanel = wx.Panel(self, -1, style=wx.SUNKEN_BORDER) #This is the panel where the web view would be shown
browser = wx.html2.WebView.New(htmlPanel) #I create the new web view here with the htmlPanel as its parent
browser.LoadURL("http://www.google.com") #And then I load Google here
hbox.Add(listPanel, 1, wx.EXPAND) #Then I add both panels to the frame. Not sure where I went wrong.
hbox.Add(htmlPanel, 2, wx.EXPAND)
self.SetAutoLayout(True)
self.SetSizer(hbox)
self.Layout()
def main():
app = wx.App()
frame = MainFrame(None, title='What is this box? HELP!', size=(800,480))
app.MainLoop()
if __name__ == '__main__':
main()