获取指针的像素位置

时间:2012-11-04 18:41:00

标签: python wxpython

是否可以使用标准Python库将光标位置设置为像素值?

我无法正确定位弹出菜单:

    pos = self.text.GetLastPosition()
    start, end = self.text.PositionToXY(pos)

    self.text.PopupMenuXY(self.popupmenu,start, end)

谢谢!

2 个答案:

答案 0 :(得分:1)

不使用标准 python库,因为它与平台有关。在Windows上,您可以使用winapi:

import win32api
x, y = win32api.GetCursorPos()

在Linux上你可以使用xlib:

from Xlib.display import Display   
display = Display()
coord = display.screen().root.query_pointer()._data
x = coord["root_x"]
y = coord["root_y"]

答案 1 :(得分:1)

要使用wxPython获取鼠标位置,您可以使用:

pos = wx.GetMousePosition() # in screen coordinates

它将屏幕坐标中的XY位置作为元组。 如果您需要相对于窗口小部件的位置,则必须通过在窗口小部件上调用ScreenToClient()将其转换为客户端坐标。

pos = self.textctrl.ScreenToClient(pos) # relative to textctrl

如果您只想在当前鼠标位置显示弹出菜单,可以跳过此选项并调用PopupMenu()而不提供位置:

self.PopupMenu(self.popupmenu) # pop up menu at mouse position