WxPython缩放技术

时间:2016-09-05 16:20:57

标签: python wxpython zooming

我正在开发一个wxpython项目,我正在绘制一个图表,我需要能够放大/缩小到这个图表(在我的情况下是一个有向无环图)。当光标在面板上时,我将通过鼠标滚动来实现这一点,但这不是我的问题的一部分。我需要有经验的人提供有关我用于缩放的方法的建议。到目前为止,我一直在想,

  • 此图中的矩形内部有直线,矩形和文本。所以也许我可以用所选的鼠标事件增加/减少它们的长度/大小。但很难保持平衡,因为矩形与线条相连,它们的角度不应该改变,而矩形内的文本应该保持在它们的中间。
  • 我想做的其他方法是搜索内置的缩放方法。我听说过像Scale这样的东西。不过我对这个方法有些疑问。这是否适用于矢量图(如我的)而不是图像。它只会缩放我选择的面板而不是整个屏幕吗?听到你对此的建议之后,我会更深入地了解这一点,但现在我有点无能为力。

很抱歉,如果我的问题太理论。但我觉得我需要在该地区提供帮助。提前谢谢。

注意:缩放不一定通过滚动来应用。

注2:我的研究也让我FloatCanvas。这适合我的需要吗?

1 个答案:

答案 0 :(得分:0)

是的,根据您的说明FloatCanvas肯定会满足您的需求。

另一种考虑的可能性是wx.GraphicsContext和相关类。它是基于矢量的(而不是光栅)并且支持使用变换矩阵,这将使缩放,旋转等变得非常容易。但是,实际绘制和管理形状等可能需要比使用FloatCanvas更多的工作。