1

標準のPythonライブラリを使用して、カーソル位置をピクセル値で取得することは可能ですか?

ポップアップメニューを適切に配置できません:

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

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

ありがとう!

4

2 に答える 2

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 に答える
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 に答える