Estoy creando una aplicación para Ubuntu App Showdown en Python + Gtk con rapidez. Lo llamo Discvur. Me hubiera gustado incluir algunos atajos de teclado.
Al buscar en la web, encontré esta página sobre AccelGroup y esta página sobre gtk_widget_add_accelerator, pero no entiendo cómo comenzar con ella. ¿Podría decirme cómo definiría una señal apropiada y luego la usaría en mi aplicación?
Respuestas:
Aquí hay algunos bits de código de una de mis aplicaciones Python + Gtk, más ampliadas de acuerdo con los comentarios a esta respuesta:
fuente
self.add_accelerator(self.quick_add_entry, "<Control>l", signal="grab-focus") AttributeError: 'DiscvurWindow' object has no attribute 'quick_add_entry'
. Cuando intento una búsqueda web de "quick_add_entry", no puedo encontrarla en ningún lado. ¿Estás seguro de que es la función correcta? ¿Dónde puedo encontrar más información / un tutorial para esto? Además, ¿"<Control> l" significa Ctrl + l o es un tipo incorrecto?Aquí está el código que finalmente funcionó. Como depende en gran medida de mi entorno de desarrollo Quickly + Glade + Python + Gtk, lo hago una respuesta independiente. La respuesta de Bryce ayudó mucho, y mis intercambios con aking1012 también .
El código real, en un editor de texto:
En Glade, creé un GtkEntry llamado "entry1" en mi ventana llamada "discvur_window". En la pestaña 'Señales', le di a la señal "retroceso" un controlador llamado "on_erasing".
Ahora, presionar Backspaceo Ctrl+ Bhace que el terminal imprima "Funciona".
fuente
He reempacado las respuestas dadas en este hilo en un ejemplo independiente:
Nota: La señal predeterminada es
clicked
, noactivate
porque las aplicaciones nunca deberían conectarse a la::activate
señal, sino porque usan la::clicked
señal Gtk.Button .fuente
clicked
el acelerador se puede machacar muy rápidamente, pero el botón no se presiona visualmente. Cuando se usaactivate
, el botón se presionará, pero el acelerador solo se puede presionar una vez que finaliza la depresión visual.