光标跟随wxpython中的帧

时间:2014-10-06 18:59:15

标签: timer cursor 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]))

1 个答案:

答案 0 :(得分: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中的其他东西进行交互。