2012-11-04 94 views
1

使用標準Python庫可以獲取像素值中的光標位置嗎?獲取指針的像素位置

我不能正確定位彈出式菜單:

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

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

謝謝!

+0

wxPython的圖書館 – user1798498

回答

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

爲了得到與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