在sizer中获取鼠标位置? wxPython的

时间:2011-11-22 03:22:18

标签: python wxpython

可以使用

在wxpython中获取鼠标位置

event.GetPosition()

然而,是否可以在sizer中获得鼠标的位置?即使在不断扩大的尺寸中,这是否也能正常工作?

感谢。

2 个答案:

答案 0 :(得分:3)

sizer中的X,Y位置与sizer所属的窗口完全相同,假设sizer是分配给该窗口的sizer。如果你有嵌套的sizer,那么你可以使用sizer.GetPosition和sizer.GetSize来确定该位置是否在嵌套的sizer中。

但是我猜想知道sizer中的鼠标位置不会非常有用。您可能想知道sizer中鼠标位置结束的项目,如HitTest类型的方法。你可以使用sizer.GetChildren()方法实现类似的东西并迭代它的项目(它们是wx.SizerItem对象)并查看项目的位置和大小以找到其中包含点的那个。如果该项是sizer,那么您可以递归地下降到该sizer并执行相同的操作,直到您在所需的点找到叶项。

答案 1 :(得分:0)

Sizer不适用于绝对定位。它们是相对定位的。 Sizer最适合在多个平台和主题上展示您的布局。如果您真的希望能够在特定的x-y坐标处插入内容,那么请不要使用sizer。