python类event()的实例源码

event.py 文件源码 项目:math-hurdler 作者: craigcabrey 项目源码 文件源码 阅读 35 收藏 0 点赞 0 评论 0
def _draw_cb(self, widget, event):
        if pygame.display.get_init():
            pygame.event.post(pygame.event.Event(pygame.VIDEOEXPOSE))
        return True
event.py 文件源码 项目:math-hurdler 作者: craigcabrey 项目源码 文件源码 阅读 27 收藏 0 点赞 0 评论 0
def _resize_cb(self, widget, event):
        evt = pygame.event.Event(pygame.VIDEORESIZE, 
                                 size=(event.width,event.height), width=event.width, height=event.height)
        pygame.event.post(evt)
        return False # continue processing
event.py 文件源码 项目:math-hurdler 作者: craigcabrey 项目源码 文件源码 阅读 30 收藏 0 点赞 0 评论 0
def _quit_cb(self, data=None):
        self.__stopped = True
        pygame.event.post(pygame.event.Event(pygame.QUIT))
event.py 文件源码 项目:math-hurdler 作者: craigcabrey 项目源码 文件源码 阅读 33 收藏 0 点赞 0 评论 0
def _keydown_cb(self, widget, event):
        key = event.keyval
        if key in self.__held:
            return True
        else:
            if self.__repeat[0] is not None:
                self.__held_last_time[key] = pygame.time.get_ticks()
                self.__held_time_left[key] = self.__repeat[0]
            self.__held.add(key)

        return self._keyevent(widget, event, pygame.KEYDOWN)
event.py 文件源码 项目:math-hurdler 作者: craigcabrey 项目源码 文件源码 阅读 30 收藏 0 点赞 0 评论 0
def _keyevent(self, widget, event, type):
        key = Gdk.keyval_name(event.keyval)
        if key is None:
            # No idea what this key is.
            return False 

        keycode = None
        if key in self.key_trans:
            keycode = self.key_trans[key]
        elif hasattr(pygame, 'K_'+key.upper()):
            keycode = getattr(pygame, 'K_'+key.upper())
        elif hasattr(pygame, 'K_'+key.lower()):
            keycode = getattr(pygame, 'K_'+key.lower())
        elif key == 'XF86Start':
            # view source request, specially handled...
            self._mainwindow.view_source()
        else:
            print 'Key %s unrecognized' % key

        if keycode is not None:
            if type == pygame.KEYDOWN:
                mod = self._keymods()
            self.__keystate[keycode] = type == pygame.KEYDOWN
            if type == pygame.KEYUP:
                mod = self._keymods()
            ukey = unichr(Gdk.keyval_to_unicode(event.keyval))
            if ukey == '\000':
                ukey = ''
            evt = pygame.event.Event(type, key=keycode, unicode=ukey, mod=mod)
            self._post(evt)

        return True
event.py 文件源码 项目:math-hurdler 作者: craigcabrey 项目源码 文件源码 阅读 46 收藏 0 点赞 0 评论 0
def _mousedown_cb(self, widget, event):
        self.__button_state[event.button-1] = 1
        return self._mouseevent(widget, event, pygame.MOUSEBUTTONDOWN)
event.py 文件源码 项目:math-hurdler 作者: craigcabrey 项目源码 文件源码 阅读 27 收藏 0 点赞 0 评论 0
def _mouseup_cb(self, widget, event):
        self.__button_state[event.button-1] = 0
        return self._mouseevent(widget, event, pygame.MOUSEBUTTONUP)
event.py 文件源码 项目:math-hurdler 作者: craigcabrey 项目源码 文件源码 阅读 31 收藏 0 点赞 0 评论 0
def _mouseevent(self, widget, event, type):
        evt = pygame.event.Event(type, button=event.button, pos=(event.x, event.y))
        self._post(evt)
        return True
fastevents.py 文件源码 项目:Projects 作者: it2school 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def main():
    init()

    if use_fast_events:
        fastevent.init()

    c = time.Clock()

    win = display.set_mode((640, 480), RESIZABLE)
    display.set_caption("fastevent Workout")

    poster = post_them()

    t1 = pytime.time()
    poster.start()

    going = True
    while going:
#        for e in event.get():
        #for x in range(200):
        #    ee = event.Event(USEREVENT)
        #    r = event_module.post(ee)
        #    print (r)

        #for e in event_module.get():
        event_list = []
        event_list = event_module.get()

        for e in event_list:
            if e.type == QUIT:
                print (c.get_fps())
                poster.stop.append(1)
                going = False
            if e.type == KEYDOWN:
                if e.key == K_ESCAPE:
                    print (c.get_fps())
                    poster.stop.append(1)
                    going = False
        if poster.done:
            print (c.get_fps())
            print (c)
            t2 = pytime.time()
            print ("total time:%s" % (t2 - t1))
            print ("events/second:%s" % (NUM_EVENTS_TO_POST / (t2 - t1)))
            going = False
        if with_display:
            display.flip()
        if slow_tick:
            c.tick(40)


    pygame.quit()
event.py 文件源码 项目:PyCut 作者: FOSSRIT 项目源码 文件源码 阅读 34 收藏 0 点赞 0 评论 0
def __init__(self, mainwindow, inner_evb):
        '''Initialise the Translator with the windows to which to listen'''
        self._mainwindow = mainwindow
        self._inner_evb = inner_evb

        # Enable events
        # (add instead of set here because the main window is already realized)
        self._mainwindow.add_events(
            Gdk.EventMask.KEY_PRESS_MASK | \
            Gdk.EventMask.KEY_RELEASE_MASK \
        )

        self._inner_evb.set_events(
            Gdk.EventMask.POINTER_MOTION_MASK | \
            Gdk.EventMask.POINTER_MOTION_HINT_MASK | \
            Gdk.EventMask.BUTTON_MOTION_MASK | \
            Gdk.EventMask.BUTTON_PRESS_MASK | \
            Gdk.EventMask.BUTTON_RELEASE_MASK 
        )

        self._mainwindow.set_can_focus(True)
        self._inner_evb.set_can_focus(True)

        # Callback functions to link the event systems
        self._mainwindow.connect('unrealize', self._quit_cb)
        self._inner_evb.connect('key_press_event', self._keydown_cb)
        self._inner_evb.connect('key_release_event', self._keyup_cb)
        self._inner_evb.connect('button_press_event', self._mousedown_cb)
        self._inner_evb.connect('button_release_event', self._mouseup_cb)
        self._inner_evb.connect('motion-notify-event', self._mousemove_cb)
        self._inner_evb.connect('draw', self._draw_cb)
        self._inner_evb.connect('configure-event', self._resize_cb)

        # Internal data
        self.__stopped = False
        self.__keystate = [0] * 323
        self.__button_state = [0,0,0]
        self.__mouse_pos = (0,0)
        self.__repeat = (None, None)
        self.__held = set()
        self.__held_time_left = {}
        self.__held_last_time = {}
        self.__tick_id = None
event.py 文件源码 项目:HFOSSFinal 作者: AlanLeeson 项目源码 文件源码 阅读 40 收藏 0 点赞 0 评论 0
def __init__(self, mainwindow, inner_evb):
        '''Initialise the Translator with the windows to which to listen'''
        self._mainwindow = mainwindow
        self._inner_evb = inner_evb

        # Enable events
        # (add instead of set here because the main window is already realized)
        self._mainwindow.add_events(
            Gdk.EventMask.KEY_PRESS_MASK | \
            Gdk.EventMask.KEY_RELEASE_MASK \
        )

        self._inner_evb.set_events(
            Gdk.EventMask.POINTER_MOTION_MASK | \
            Gdk.EventMask.POINTER_MOTION_HINT_MASK | \
            Gdk.EventMask.BUTTON_MOTION_MASK | \
            Gdk.EventMask.BUTTON_PRESS_MASK | \
            Gdk.EventMask.BUTTON_RELEASE_MASK 
        )

        self._mainwindow.set_can_focus(True)
        self._inner_evb.set_can_focus(True)

        # Callback functions to link the event systems
        self._mainwindow.connect('unrealize', self._quit_cb)
        self._inner_evb.connect('key_press_event', self._keydown_cb)
        self._inner_evb.connect('key_release_event', self._keyup_cb)
        self._inner_evb.connect('button_press_event', self._mousedown_cb)
        self._inner_evb.connect('button_release_event', self._mouseup_cb)
        self._inner_evb.connect('motion-notify-event', self._mousemove_cb)
        self._inner_evb.connect('draw', self._draw_cb)
        self._inner_evb.connect('configure-event', self._resize_cb)

        # Internal data
        self.__stopped = False
        self.__keystate = [0] * 323
        self.__button_state = [0,0,0]
        self.__mouse_pos = (0,0)
        self.__repeat = (None, None)
        self.__held = set()
        self.__held_time_left = {}
        self.__held_last_time = {}
        self.__tick_id = None
fastevents.py 文件源码 项目:AIFun 作者: Plottel 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def main():
    init()

    if use_fast_events:
        fastevent.init()

    c = time.Clock()

    win = display.set_mode((640, 480), RESIZABLE)
    display.set_caption("fastevent Workout")

    poster = post_them()

    t1 = pytime.time()
    poster.start()

    going = True
    while going:
#        for e in event.get():
        #for x in range(200):
        #    ee = event.Event(USEREVENT)
        #    r = event_module.post(ee)
        #    print (r)

        #for e in event_module.get():
        event_list = []
        event_list = event_module.get()

        for e in event_list:
            if e.type == QUIT:
                print (c.get_fps())
                poster.stop.append(1)
                going = False
            if e.type == KEYDOWN:
                if e.key == K_ESCAPE:
                    print (c.get_fps())
                    poster.stop.append(1)
                    going = False
        if poster.done:
            print (c.get_fps())
            print (c)
            t2 = pytime.time()
            print ("total time:%s" % (t2 - t1))
            print ("events/second:%s" % (NUM_EVENTS_TO_POST / (t2 - t1)))
            going = False
        if with_display:
            display.flip()
        if slow_tick:
            c.tick(40)


    pygame.quit()
event.py 文件源码 项目:math-hurdler 作者: craigcabrey 项目源码 文件源码 阅读 39 收藏 0 点赞 0 评论 0
def __init__(self, mainwindow, inner_evb):
        '''Initialise the Translator with the windows to which to listen'''
        self._mainwindow = mainwindow
        self._inner_evb = inner_evb

        # Enable events
        # (add instead of set here because the main window is already realized)
        self._mainwindow.add_events(
            Gdk.EventMask.KEY_PRESS_MASK | \
            Gdk.EventMask.KEY_RELEASE_MASK \
        )

        self._inner_evb.set_events(
            Gdk.EventMask.POINTER_MOTION_MASK | \
            Gdk.EventMask.POINTER_MOTION_HINT_MASK | \
            Gdk.EventMask.BUTTON_MOTION_MASK | \
            Gdk.EventMask.BUTTON_PRESS_MASK | \
            Gdk.EventMask.BUTTON_RELEASE_MASK 
        )

        self._mainwindow.set_can_focus(True)
        self._inner_evb.set_can_focus(True)

        # Callback functions to link the event systems
        self._mainwindow.connect('unrealize', self._quit_cb)
        self._inner_evb.connect('key_press_event', self._keydown_cb)
        self._inner_evb.connect('key_release_event', self._keyup_cb)
        self._inner_evb.connect('button_press_event', self._mousedown_cb)
        self._inner_evb.connect('button_release_event', self._mouseup_cb)
        self._inner_evb.connect('motion-notify-event', self._mousemove_cb)
        self._inner_evb.connect('draw', self._draw_cb)
        self._inner_evb.connect('configure-event', self._resize_cb)

        # Internal data
        self.__stopped = False
        self.__keystate = [0] * 323
        self.__button_state = [0,0,0]
        self.__mouse_pos = (0,0)
        self.__repeat = (None, None)
        self.__held = set()
        self.__held_time_left = {}
        self.__held_last_time = {}
        self.__tick_id = None
pygame.py 文件源码 项目:pyimgui 作者: swistakm 项目源码 文件源码 阅读 34 收藏 0 点赞 0 评论 0
def process_event(self, event):
        # perf: local for faster access
        io = self.io

        if event.type == pygame.MOUSEMOTION:
            io.mouse_pos = event.pos

        if event.type == pygame.MOUSEBUTTONDOWN:
            if event.button == 1:
                io.mouse_down[0] = 1
            if event.button == 2:
                io.mouse_down[1] = 1
            if event.button == 3:
                io.mouse_down[2] = 1

        if event.type == pygame.MOUSEBUTTONUP:
            if event.button == 1:
                io.mouse_down[0] = 0
            if event.button == 2:
                io.mouse_down[1] = 0
            if event.button == 3:
                io.mouse_down[2] = 0
            if event.button == 4:
                io.mouse_wheel = .5
            if event.button == 5:
                io.mouse_wheel = -.5

        if event.type == pygame.KEYDOWN:
            for char in event.unicode:
                code = ord(char)
                if 0 < code < 0x10000:
                    io.add_input_character(code)

            io.keys_down[event.key] = True

        if event.type == pygame.KEYUP:
            io.keys_down[event.key] = False

        if event.type in (pygame.KEYDOWN, pygame.KEYUP):
            io.key_ctrl = (
                io.keys_down[pygame.K_LCTRL] or
                io.keys_down[pygame.K_RCTRL]
            )

            io.key_alt = (
                io.keys_down[pygame.K_LALT] or
                io.keys_down[pygame.K_RALT]
            )

            io.key_shift = (
                io.keys_down[pygame.K_LSHIFT] or
                io.keys_down[pygame.K_RSHIFT]
            )

            io.key_super = (
                io.keys_down[pygame.K_LSUPER] or
                io.keys_down[pygame.K_LSUPER]
            )

        if event.type == pygame.VIDEORESIZE:
            io.display_size = event.size


问题


面经


文章

微信
公众号

扫码关注公众号