python - 如何将 wxPython wx.html.HtmlWindow 滚动回到用户单击链接时的位置?

标签 python wxpython

我正在使用 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/

相关文章:

python - 如何运行从任何位置调用 Python 脚本的 Bash 脚本?

python - 在 Python 中使用 Eval 创建类变量

python - 如何在 python 中绘制悬挂根图?

python - 如何将频谱图转换为 3d 图。 Python

python - wxpython 3.0 破坏了旧的应用程序? (区域设置错误)

python - 使列宽占用wxPython ListCtrl中的可用空间

python - 父引用问题 python

python - 如何在 wxpython 中接受来自 textctrl 的值

python - 比较不等长度的列表没有错误

python - 为什么不会这个 pickle ?