如何使用wxpython缩放绘图?

时间:2016-12-13 01:22:01

标签: python-2.7 plot wxpython wxwidgets

我正在开发一个GUI,用于绘制用户选择的两点之间的一条线。它有一个连接所有点的所有线的背景图(它与wx.EVT_PAINT绑定,因此在调整大小时不会消失)

然而,当我调整框架大小时,我无法找到缩放这些绘图的方法。情节始终保持相同的大小。

当我调整框架大小时,任何人都知道如何按比例放大或缩小绘图? sizer在这里工作吗?谢谢你的帮助!

This is the original size

This is what it looks like when I shrink it

2 个答案:

答案 0 :(得分:0)

答案取决于您用于积分的坐标。如果您希望绘图始终适合您的窗口,最简单的方法是使用坐标空间[0, 1]x[0, 1]并使用wxDC::SetLogicalScale() GetClientSize().x.y作为参数。

请注意,您还需要在wxEVT_SIZE处理程序中使窗口无效。

答案 1 :(得分:0)

感谢VZ的答案,这看起来比我的解决方案更好。

我首先通过将它们除以所有点中的最大x和y来标准化这些点的坐标。

然后在'print'函数中,我使用GetSize()函数并乘以标准化坐标。