Wxpython 超大wx.ScrolledPanel渲染

Wxpython 超大wx.ScrolledPanel渲染,wxpython,Wxpython,我正在尝试在可滚动窗口中显示一张非常大的地图。这个想法是,你有一个正方形瓷砖网格,每个瓷砖都有一个图像,你可以滚动查看它们。每个磁贴也有一些数字信息(我可以用wx.StaticText绘制),您可以单击并右键单击磁贴来执行某些操作 我的第一步是对每个图块使用wx.Panel,对地图使用wx.scrolled窗口。但是,wx.ScrolledWindow在使用大量分幅时(以大约4fps的速度滚动)的性能似乎非常差 我的下一个尝试是使用wx.dc使用9个大面板,每个面板渲染大约100个瓷砖。当用户向

我正在尝试在可滚动窗口中显示一张非常大的地图。这个想法是,你有一个正方形瓷砖网格,每个瓷砖都有一个图像,你可以滚动查看它们。每个磁贴也有一些数字信息(我可以用wx.StaticText绘制),您可以单击并右键单击磁贴来执行某些操作

我的第一步是对每个图块使用wx.Panel,对地图使用wx.scrolled窗口。但是,wx.ScrolledWindow在使用大量分幅时(以大约4fps的速度滚动)的性能似乎非常差

我的下一个尝试是使用wx.dc使用9个大面板,每个面板渲染大约100个瓷砖。当用户向一个方向滚动,面板离开屏幕时,我将它们添加到死区池,并从死区池重新配置新面板。但是,这似乎也不是特别好,因为每当重新定位面板时,都会出现明显的闪烁。此外,wx.Scrolled窗口内的面板似乎是根据当前滚动位置而不是虚拟空间的原点来定位的(例如,
panel.SetPosition(…)
),这使得很难避免争用情况,因为当面板仍在重新配置时,滚动位置可能会发生变化


在wxPython中,推荐使用什么模式来呈现非常大的滚动内容?我熟悉在我的本地WM中实现这一点的方法,并且我看到了在wxWidgets中实现的方法。但是对于wxPython来说,似乎没有任何大型滚动内容的例子。

显然,滚动大型内容的更好方法是使用。有一个合理的演示。它不是很自然的速度,但即使在较大的图形大小上也可以使用

我还没有弄明白如何进行本机scroller(Mac上)支持的2D多点触控平移,因为它似乎没有出现在鼠标滚轮事件中。如果它对某人的用例很重要,那么这可能是一个缺点,但对我的项目来说,这并不是世界末日