1

是否可以使用标准 Python 库以像素值获取光标位置?

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

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

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

谢谢!

4

2 回答 2

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
于 2012-11-04T20:38:06.480 回答
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"]
于 2012-11-04T18:43:58.220 回答