2014-10-06 2 views
0

커서를 따라가는 프레임을 가지고 있지만 코드는 작동하지만 커서의 정확한 속도가 아니며 깜박임을 계속합니다. 제발 도와 주실 수 있습니까?커서가 wxpython의 프레임을 따라 간다

import wx 

class aaa (wx.Frame): 

    def __init__(self,parent,id): 
     wx.Frame.__init__(self,parent,id,'aaa',size=(200,200),style = wx.NO_BORDER) 
     panel=wx.Panel(self, id, pos = (0,0),size = (200,200)) 
     self.on_timer() 

    def on_timer(self): 
     wx.CallLater(0, self.on_timer) 
     cursor = self.ScreenToClient(wx.GetMousePosition()) 
     self.SetPosition((cursor[0],cursor[1])) 
+0

[다른 게시물] (http://stackoverflow.com/questions/26220974/making-a-cursor-with-wxpython) (중복)을 삭제하십시오. – nepix32

답변

0

당신은 당신 클래스 aaa에서 다음을 수행 할 수

def __init__(self,parent,id): 
    ... 
    # remove self.on_timer() 
    ... 
    self.tmr = wx.Timer(self, id=wx.NewId()) 
    self.tmr.Start(100, wx.TIMER_CONTINUOUS) 
    self.Bind(wx.EVT_TIMER, self.on_timer_evt) 

def on_timer_evt(self, evt): 
    mouse = wx.GetMousePosition() 
    _, _, w, h = self.GetRect() 
    self.SetPosition((mouse[0] - w/2, mouse[1] - h/2)) 

창을 닫습니다 Alt 키 F4를 눌러. 타이머 샷 간격을 줄이면 속도가 빨라집니다 (이 경우에는 100 밀리 초).

그러나 커서를 따르는이 기능은 wx GUI에서 다른 것과 상호 작용할 수 없으므로 나에게 무의미합니다.

관련 문제