gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 23:50:42 25 4
gpt4 key购买 nike

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com