wxpython,滚动Web视图

wxpython,滚动Web视图,wxpython,Wxpython,我构建了一个webView作为wv=wx.html2.webView.New(myFrame),我使用wv.setPage(content,“”)来放置一个html文本字符串,它显示得很好,旁边有一个滚动条,因为内容超出了窗口的显示范围 现在我希望控制webView并以编程方式滚动它(例如,让它每10秒滚动一行)。我试图使用wv.ScrollLines(1)或wv.ScrollWindow(1,1),但它们没有响应。另外wv.GetScrollRange(0),wv.GetScrollRange

我构建了一个webView作为
wv=wx.html2.webView.New(myFrame)
,我使用
wv.setPage(content,“”)
来放置一个html文本字符串,它显示得很好,旁边有一个滚动条,因为内容超出了窗口的显示范围

现在我希望控制webView并以编程方式滚动它(例如,让它每10秒滚动一行)。我试图使用
wv.ScrollLines(1)
wv.ScrollWindow(1,1)
,但它们没有响应。另外
wv.GetScrollRange(0)
wv.GetScrollRange(0)
给了我0,甚至
wv.HasScrollbar(wx.VERTICAL)
返回了一个False。我试图查找webView的文档,但没有找到任何其他与滚动相关的属性或函数


你能帮我解决这个问题吗?非常感谢

我猜
HasScrollbar
返回
False
,因为作为wx窗口,它没有滚动条;文档具有滚动条。至于如何滚动,您可以选择两种方式:

1) 使用该方法。这将搜索文本,如果找到,滚动到该位置。例如,您可以使用wx.Timer并使用
Find
滚动到下一个位置:

import wx
import wx.html2

class MyFrame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, wx.ID_ANY, "Scroll", size=(500,500))
        self.timer = wx.Timer(self)
        self.Bind(wx.EVT_TIMER, self._on_timer, self.timer)
        self.wv=wx.html2.WebView.New(self)
        self.wv.SetPage(content, "")
        self.timer.Start(100) # adjust the timer interval
    def _on_timer(self, event):
        self.wv.Find("Some string in the text")

app = wx.App()
frame = MyFrame()
frame.Show()
app.MainLoop()

2) 使用javascript在文档中执行滚动,请参阅。

非常感谢您的帮助!我想我可以使用
self.wv.RunScript('scrollTo(%d,%d)'(xPos,yPos))