Je crée une application pour le Showdown d'application Ubuntu en Python + Gtk avec rapidement. Je l'appelle Discvur. J'aurais aimé inclure quelques raccourcis clavier.
En recherchant sur le Web, j'ai trouvé cette page sur AccelGroup et cette page sur gtk_widget_add_accelerator mais je ne comprends pas comment commencer avec. Pourriez-vous me dire comment je définirais un signal approprié, puis l'utiliser dans mon application?
Réponses:
Voici quelques morceaux de code de l'une de mes applications Python + Gtk, étendus en fonction des commentaires de cette réponse:
la source
self.add_accelerator(self.quick_add_entry, "<Control>l", signal="grab-focus") AttributeError: 'DiscvurWindow' object has no attribute 'quick_add_entry'
. Lorsque j'essaie une recherche sur le Web de "quick_add_entry", je ne le trouve nulle part. Êtes-vous sûr que c'est la bonne fonction? Où puis-je trouver plus d'informations / un tutoriel pour cela? De plus, "<Control> l" signifie-t-il Ctrl + l ou s'agit-il d'un type erroné?Voici le code qui a finalement fonctionné. Comme cela dépend fortement de mon environnement de développement Quickly + Glade + Python + Gtk, j'en fais une réponse indépendante. La réponse de Bryce a beaucoup aidé, tout comme mes échanges avec aking1012 .
Le code réel, dans un éditeur de texte:
Dans Glade, j'ai créé un GtkEntry appelé "entry1" dans ma fenêtre appelé "discvur_window". Dans l'onglet 'Signaux', j'ai donné au signal "backspace" un gestionnaire appelé "on_erasing".
Maintenant, en appuyant sur Backspaceou Ctrl+, Ble terminal affiche "Ça marche".
la source
J'ai reconditionné les réponses données dans ce fil dans un exemple autonome:
Remarque: Le signal par défaut est
clicked
, non pasactivate
parce que les applications ne doivent jamais se connecter au::activate
signal, mais utiliser le::clicked
signal Gtk.Button .la source
clicked
l'accélérateur peut être écrasé très rapidement, mais le bouton ne déprime pas visuellement. Lors de l'utilisationactivate
, le bouton s'enfonce, mais l'accélérateur ne peut être enfoncé qu'une fois la dépression visuelle terminée.