wxPython html2.WebView和垂直滚动条
我已经阅读了几乎所有我能在互联网上找到的解决这个问题的方法,但没有办法找到答案 所以我会在这里发帖。我希望我的新闻在gridbagsizer中有一个垂直滚动条 我试着把它放在wxscrolledWindow和其他很多东西上,没有办法得到这个VScroll 也许我应该把它连接到gridbagsizer上,但我不知道如何 下面是我的问题的一个例子:wxPython html2.WebView和垂直滚动条,webview,wxpython,scrollbar,vertical-scrolling,wx.html2,Webview,Wxpython,Scrollbar,Vertical Scrolling,Wx.html2,我已经阅读了几乎所有我能在互联网上找到的解决这个问题的方法,但没有办法找到答案 所以我会在这里发帖。我希望我的新闻在gridbagsizer中有一个垂直滚动条 我试着把它放在wxscrolledWindow和其他很多东西上,没有办法得到这个VScroll 也许我应该把它连接到gridbagsizer上,但我不知道如何 下面是我的问题的一个例子: import wx import wx.html2 from os import getcwd import wx.media class MyFr
import wx
import wx.html2
from os import getcwd
import wx.media
class MyFrame(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, None, id, u"PC GAMES Updater/Launcher V2.0 By -Fawn-", wx.DefaultPosition, wx.Size(1280, 650),style=wx.MINIMIZE_BOX|wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX)
ImgDir = (getcwd()+u"\\img\\fond.jpg")
fond = wx.Image(ImgDir, wx.BITMAP_TYPE_ANY).ConvertToBitmap()
self.bg = wx.StaticBitmap(self, -1, fond)
self.browser = wx.html2.WebView.New(self.bg,-1,size=(370,200))
self.browser.LoadURL("http://utrem.tf/www/news.html")
#Sizer news
gbox7 = wx.GridBagSizer(1,1)
gbox7.SetEmptyCellSize((10,10))
gbox7.Add(self.browser,(0,0))
#NEWS
box7= wx.StaticBox(self, -1, "NEWS")
bsizer7 = wx.StaticBoxSizer(box7, wx.HORIZONTAL)
sizerH7 = wx.BoxSizer(wx.VERTICAL)
sizerH7.Add(gbox7, 0, wx.ALL|wx.CENTER, 10)
bsizer7.Add(sizerH7, 1, wx.EXPAND, 0)
vSizer3 = wx.BoxSizer(wx.VERTICAL,)
vSizer3.Add(bsizer7, 0,wx.ALL|wx.EXPAND, 10)
hmainSizer=wx.BoxSizer(wx.HORIZONTAL)
hmainSizer.Add(vSizer3, 0,wx.ALL|wx.EXPAND, 10)
vmainSizer=wx.BoxSizer(wx.VERTICAL)
vmainSizer.Add(hmainSizer, 0,wx.ALL|wx.EXPAND, 10)
self.SetSizer(vmainSizer)
class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None, -1, None)
frame.Show(True)
frame.Centre()
return True
if __name__=='__main__':
app = MyApp(0)
app.MainLoop()
注:我必须保持我的“新闻”尺寸(370200)
如果有人能帮我解释一下我做错了什么,那就谢谢了。好吧,这完全是因为HTML页面的代码,现在工作正常了 在询问源代码后,我重新编码了HTML页面,结果如下:
import wx
import wx.html2
from os import getcwd
import wx.media
class MyFrame(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, None, id, u"PC GAMES Updater/Launcher V2.0 By -Fawn-", wx.DefaultPosition, wx.Size(1280, 650),style=wx.MINIMIZE_BOX|wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX)
ImgDir = (getcwd()+u"\\img\\fond.jpg")
fond = wx.Image(ImgDir, wx.BITMAP_TYPE_ANY).ConvertToBitmap()
self.bg = wx.StaticBitmap(self, -1, fond)
self.browser = wx.html2.WebView.New(self.bg,-1,size=(370,200))
self.browser.LoadURL("http://ninjaaior.free.fr/2505/news.html")
#Sizer news
gbox7 = wx.GridBagSizer(1,1)
gbox7.SetEmptyCellSize((10,10))
gbox7.Add(self.browser,(0,0))
#NEWS
box7= wx.StaticBox(self, -1, "NEWS")
bsizer7 = wx.StaticBoxSizer(box7, wx.HORIZONTAL)
sizerH7 = wx.BoxSizer(wx.VERTICAL)
sizerH7.Add(gbox7, 0, wx.ALL|wx.CENTER, 10)
bsizer7.Add(sizerH7, 1, wx.EXPAND, 0)
vSizer3 = wx.BoxSizer(wx.VERTICAL,)
vSizer3.Add(bsizer7, 0,wx.ALL|wx.EXPAND, 10)
hmainSizer=wx.BoxSizer(wx.HORIZONTAL)
hmainSizer.Add(vSizer3, 0,wx.ALL|wx.EXPAND, 10)
vmainSizer=wx.BoxSizer(wx.VERTICAL)
vmainSizer.Add(hmainSizer, 0,wx.ALL|wx.EXPAND, 10)
self.SetSizer(vmainSizer)
class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None, -1, None)
frame.Show(True)
frame.Centre()
return True
if __name__=='__main__':
app = MyApp(0)
app.MainLoop()
好吧,这完全是因为HTML页面的代码,现在运行良好 在询问源代码后,我重新编码了HTML页面,结果如下:
import wx
import wx.html2
from os import getcwd
import wx.media
class MyFrame(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, None, id, u"PC GAMES Updater/Launcher V2.0 By -Fawn-", wx.DefaultPosition, wx.Size(1280, 650),style=wx.MINIMIZE_BOX|wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX)
ImgDir = (getcwd()+u"\\img\\fond.jpg")
fond = wx.Image(ImgDir, wx.BITMAP_TYPE_ANY).ConvertToBitmap()
self.bg = wx.StaticBitmap(self, -1, fond)
self.browser = wx.html2.WebView.New(self.bg,-1,size=(370,200))
self.browser.LoadURL("http://ninjaaior.free.fr/2505/news.html")
#Sizer news
gbox7 = wx.GridBagSizer(1,1)
gbox7.SetEmptyCellSize((10,10))
gbox7.Add(self.browser,(0,0))
#NEWS
box7= wx.StaticBox(self, -1, "NEWS")
bsizer7 = wx.StaticBoxSizer(box7, wx.HORIZONTAL)
sizerH7 = wx.BoxSizer(wx.VERTICAL)
sizerH7.Add(gbox7, 0, wx.ALL|wx.CENTER, 10)
bsizer7.Add(sizerH7, 1, wx.EXPAND, 0)
vSizer3 = wx.BoxSizer(wx.VERTICAL,)
vSizer3.Add(bsizer7, 0,wx.ALL|wx.EXPAND, 10)
hmainSizer=wx.BoxSizer(wx.HORIZONTAL)
hmainSizer.Add(vSizer3, 0,wx.ALL|wx.EXPAND, 10)
vmainSizer=wx.BoxSizer(wx.VERTICAL)
vmainSizer.Add(hmainSizer, 0,wx.ALL|wx.EXPAND, 10)
self.SetSizer(vmainSizer)
class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None, -1, None)
frame.Show(True)
frame.Centre()
return True
if __name__=='__main__':
app = MyApp(0)
app.MainLoop()
我很高兴您满意地解决了这个问题,但是,正如我在评论中指出的,如果您只需调整代码,使webview成为
self
的子视图,而不是图像,那么它就可以工作了
import wx
import wx.html2
from os import getcwd
import wx.media
class MyFrame(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, None, id, u"PC GAMES Updater/Launcher V2.0 By -Fawn-", wx.DefaultPosition, wx.Size(1280, 650))#,style=wx.MINIMIZE_BOX|wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX)
ImgDir = (getcwd()+u"/frame1.png")
fond = wx.Image(ImgDir, wx.BITMAP_TYPE_ANY).ConvertToBitmap()
self.bg = wx.StaticBitmap(self, -1, fond)
self.browser = wx.html2.WebView.New(self,-1,size=(370,200))
self.browser.LoadURL("http://utrem.tf/www/news.html")
#self.browser.LoadURL("http://ninjaaior.free.fr/2505/news.html")
#Sizer news
gbox7 = wx.GridBagSizer(1,1)
gbox7.SetEmptyCellSize((10,10))
gbox7.Add(self.browser,(0,0))
#NEWS
box7= wx.StaticBox(self, -1, "NEWS")
bsizer7 = wx.StaticBoxSizer(box7, wx.HORIZONTAL)
sizerH7 = wx.BoxSizer(wx.VERTICAL)
sizerH7.Add(gbox7, 0, wx.ALL|wx.CENTER, 10)
bsizer7.Add(sizerH7, 1, wx.EXPAND, 0)
vSizer3 = wx.BoxSizer(wx.VERTICAL,)
vSizer3.Add(bsizer7, 0,wx.ALL|wx.EXPAND, 10)
hmainSizer=wx.BoxSizer(wx.HORIZONTAL)
hmainSizer.Add(vSizer3, 0,wx.ALL|wx.EXPAND, 10)
vmainSizer=wx.BoxSizer(wx.VERTICAL)
vmainSizer.Add(hmainSizer, 0,wx.ALL|wx.EXPAND, 10)
self.SetSizer(vmainSizer)
class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None, -1, None)
frame.Show(True)
frame.Centre()
return True
if __name__=='__main__':
app = MyApp(0)
app.MainLoop()
我很高兴您满意地解决了这个问题,但是,正如我在评论中指出的那样,如果您只需调整代码,使webview成为
self
的子视图,而不是图像,那么它就会起作用
import wx
import wx.html2
from os import getcwd
import wx.media
class MyFrame(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, None, id, u"PC GAMES Updater/Launcher V2.0 By -Fawn-", wx.DefaultPosition, wx.Size(1280, 650))#,style=wx.MINIMIZE_BOX|wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX)
ImgDir = (getcwd()+u"/frame1.png")
fond = wx.Image(ImgDir, wx.BITMAP_TYPE_ANY).ConvertToBitmap()
self.bg = wx.StaticBitmap(self, -1, fond)
self.browser = wx.html2.WebView.New(self,-1,size=(370,200))
self.browser.LoadURL("http://utrem.tf/www/news.html")
#self.browser.LoadURL("http://ninjaaior.free.fr/2505/news.html")
#Sizer news
gbox7 = wx.GridBagSizer(1,1)
gbox7.SetEmptyCellSize((10,10))
gbox7.Add(self.browser,(0,0))
#NEWS
box7= wx.StaticBox(self, -1, "NEWS")
bsizer7 = wx.StaticBoxSizer(box7, wx.HORIZONTAL)
sizerH7 = wx.BoxSizer(wx.VERTICAL)
sizerH7.Add(gbox7, 0, wx.ALL|wx.CENTER, 10)
bsizer7.Add(sizerH7, 1, wx.EXPAND, 0)
vSizer3 = wx.BoxSizer(wx.VERTICAL,)
vSizer3.Add(bsizer7, 0,wx.ALL|wx.EXPAND, 10)
hmainSizer=wx.BoxSizer(wx.HORIZONTAL)
hmainSizer.Add(vSizer3, 0,wx.ALL|wx.EXPAND, 10)
vmainSizer=wx.BoxSizer(wx.VERTICAL)
vmainSizer.Add(hmainSizer, 0,wx.ALL|wx.EXPAND, 10)
self.SetSizer(vmainSizer)
class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None, -1, None)
frame.Show(True)
frame.Centre()
return True
if __name__=='__main__':
app = MyApp(0)
app.MainLoop()
self.browser=wx.html2.WebView.New(self.bg,-1,size=(370200))
其中self.bg
是静态位图,而不是self
(即帧)。那可能没用!我试着直接把它和框架作为父框架,它也不起作用:'(我想这是因为HTML页面的行为……所以我决定通过重新编码页面来解决它。self.browser=wx.html2.WebView.New(self.bg,-1,size=(370200))
其中self.bg
是静态位图,而不是self
(即框架)。这可能没有帮助!我试图直接将其与框架作为父对象放在一起,但也不起作用:'(我认为这是因为HTML页面的行为……因此我决定通过重新编码页面来解决它。是的,但它在“self.bg”上起作用因此,你没有帧背景,只有图像。好吧,所有这些故事都是因为html代码没有滚动!是的,但它在“self.bg”上工作,所以你没有帧背景,只有图像。好吧,所有这些故事都是因为html代码没有滚动!