我正在使用 wxPython wx.html.HtmlWindow 来显示我的界面的一部分。用户可以在比列表小的窗口中向下滚动链接列表。当他们单击链接时,我需要重新绘制网页,但我想将页面位置返回到他们单击的位置。
我已经在事件上尝试过 MouseEvent.GetLogicalPosition(),但它需要一个 DC,而我能做的最好的事情就是获得与 GetPosition() 相同的信息,所以我不能向它提供正确的信息一个。
我还尝试了 HtmlWindow.CalcScrolledPosition(),但显然这在 HtmlWindow 中不可用,因为我收到 NotImplementedError...
我想要的是可以从 MouseEvent 或 OnLinkClicked 信息派生的滚动位置。
我知道 HtmlWindow.ScrollToAnchor(),但它不稳定且不美观 - 如果可能的话,我宁愿绕过它,以便我可以准确向后滚动到用户单击的位置。
谢谢!
最佳答案
看看 source of wxHtmlWindow 怎么样?为了灵感?例如在 wxHtmlWindow::LoadPage()
:它
// store[s the current] scroll position into history item:
int x, y;
GetViewStart(&x, &y);
(*m_History)[m_HistoryPos].SetPos(y);
此保存的滚动位置用于 wxHtmlWindow::HistoryBack()
:
Scroll(0, (*m_History)[m_HistoryPos].GetPos());
Refresh();
返回到保存的位置。
我认为这种内置的“转到窗口中的最后位置”处理并不是最“不稳定且不美观”的。类似的东西也适合你吗?
关于python - 如何将 wxPython wx.html.HtmlWindow 滚动回到用户单击链接时的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1400179/