Thuban : Un GUI en python : TP 5, la gestion du clavier
mercredi 8 février 2017 à 09:08Contrôler son GUI avec le clavier, c'est un jeu d'enfant avec tkinter.
Vous vous souvenez lorsqu'on a associé des fonctions aux boutons ? Eh bien la démarche va être quasiment identique pour relier un raccourci clavier à une fonction.
De façon générale, cela se fait ainsi :
w.bind("", fonction)
On a ici "w" qui est le widget, "
Comment connaître le code?
Ça peut être pratique c'est sûr. Pour ça, le plus simple reste à les essayer au lieu de lire toute la documentation. Essayez donc de lancer le code ci-dessous puis d'appuyer sur des touches :
#!/usr/bin/env python3.4
# -*- coding:Utf-8 -*-
# print pressed key
from tkinter import *
def key(event):
print(event.keysym)
w = Tk()
w.title("get key")
w.bind("", key)
w.mainloop()
Ce petit bout de code va afficher la touche appuyée, dont la valeur sera à mettre à la place de
pour utiliser cette touche.
Notez que la fonction appelée par ".bind" reçoit en argument l'évènement. Il faudra y penser lorsqu'on utilisera lambda
.
Dans notre visionneuse, nous allons donc associer les flèches pour faire défiler les images, et la combinaison "ctrl-O" pour ouvrir une nouvelle image :
# Raccourcis clavier
w.bind("", lambda e: defile_img(img_widget, "prev"))
w.bind("", lambda e: defile_img(img_widget, "next"))
w.bind("", lambda e: chg_img(img_widget))
Et voilà !
Avec tous ces TP, vous avez dévantage de billes en poche pour vous amuser avec tkinter.
Cette fois, je dépose le code à cette adresse, avec quelques modifications supplémentaires si vous souhaitez améliorer cette visionneuse : http://git.yeuxdelibad.net/tkv
Bon code ;)
Original post of Thuban.Votez pour ce billet sur Planet Libre.
Articles similaires
- Thuban : Programmer un GUI en python -- Pourquoi TkInter ? (04/01/2017)
- Thuban : Un GUI en python : TP 1, une visionneuse d'images (11/01/2017)
- Thuban : Un GUI en python : TP 2, des dialogues (18/01/2017)
- Thuban : Un GUI en python : TP 3, la guerre des boutons (25/01/2017)
- Thuban : Un GUI en python : TP 4, l'apparence du GUI (01/02/2017)