PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Thuban : Un GUI en python : TP 5, la gestion du clavier

mercredi 8 février 2017 à 09:08

Contrô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, "" qui est le code de la touche appuyée et enfin "fonction" qui est la fonction appelée.

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 ;)

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.