terça-feira, 21 de abril de 2015

2.3. Eventos

 

Em adição ao mecanismo de sinal descrito acima, há um conjunto de eventos que reflectem o mecanismo de eventos X chamadas de retorno podem também estar ligados a estes eventos. Estes eventos são:
   evento
   button_press_event
   button_release_event
   scroll_event
   motion_notify_event
   delete_event
   destroy_event
   expose_event
   key_press_event
   key_release_event
   enter_notify_event
   leave_notify_event
   configure_event
   focus_in_event
   focus_out_event
   map_event
   unmap_event
   property_notify_event
   selection_clear_event
   selection_request_event
   selection_notify_event
   proximity_in_event
   proximity_out_event
   visibility_notify_event
   CLIENT_EVENT
   no_expose_event
   window_state_event
Para conectar uma função de retorno de um desses eventos, use o método de connect (), como mencionado acima, usando um dos nomes de eventos acima do parâmetro name . A função (ou método) evento de retorno de chamada é um pouco diferente do que para os sinais:
   def callback_func ( widget , event , callback_data ):

   callback_meth def ( self , widget , event , callback_data ):
gdk.Event é um tipo de objetos Python cujo atributo tipo indicará qual dos eventos acima ocorreu. Os outros atributos do evento depende do tipo de evento. Os valores possíveis para o tipo são:
   NADA
   APAGAR
   DESTRUIR
   EXPOR
   MOTION_NOTIFY
   BUTTON_PRESS
   _2BUTTON_PRESS
   _3BUTTON_PRESS
   BUTTON_RELEASE
   KEY_PRESS
   KEY_RELEASE
   ENTER_NOTIFY
   LEAVE_NOTIFY
   FOCUS_CHANGE
   CONFIGURAR
   MAP
   Unmap
   PROPERTY_NOTIFY
   SELECTION_CLEAR
   SELECTION_REQUEST
   SELECTION_NOTIFY
   PROXIMITY_IN
   PROXIMITY_OUT
   DRAG_ENTER
   DRAG_LEAVE
   DRAG_MOTION
   DRAG_STATUS
   DROP_START
   DROP_FINISHED
   CLIENT_EVENT
   VISIBILITY_NOTIFY
   NO_EXPOSE
   SCROLL
   WINDOW_STATE
   LOCAL
Para acessar esses valores prefixo é adicionado gtk.gdk. o tipo de evento. Por exemplo, gtk.gdk.DRAG_ENTER .
Portanto, para conectar uma função de retorno de um desses eventos que você usaria algo como:
   button.connect ( "button_press_event" , button_press_callback )
Isso pressupõe que button é um controle gtk.Button . Então, quando o mouse está sobre o botão e pressionar um botão do mouse, irá chamar a função button_press_callback . Esta função pode ser definida como:
   button_press_callback def ( widget , event , data ):
O valor retornado por esta função indica se o evento deve ser propagada através do sistema de tratamento de eventos GTK +. Voltando gtk.TRUE indica que o evento tenha sido processada, e não deve ser espalhado. Voltando gtk.FALSE o evento normal continua. É aconselhável consultar a seção de eventos avançada e de sinal para obter detalhes sobre o sistema de propagação.
A seleção APIs e arraste e solte GDK também emitem alguns eventos que são refletidas em GTK + por sinais. Veja Control Signals Origin e sinais na Destino para obter detalhes sobre a sintaxe das funções de retorno para estes sinais:
   selection_received
   selection_get
   drag_begin_event
   drag_end_event
   drag_data_delete
   DRAG_MOTION
   drag_drop
   drag_get_data
   drag_data_received

Nenhum comentário:

Postar um comentário