Je souhaite fournir aux utilisateurs plusieurs raccourcis clavier pour la traversée d'onglet dans un objet tkinter.ttk.Notebook. J'utilise le code suivant:Impossible de lier <Control-bracketleft>, <Control-bracketright> dans tkinter.ttk.Notebook (Python 3.5.1)
self.notebook = ttk.Notebook(self)
self.notebook.enable_traversal()
self.notebook.bind('<Control-Key-Prior>', self.priorTab)
self.notebook.bind('<Control-Key-Next>', self.nextTab)
self.notebook.bind('<Control-bracketleft>', self.priorTab)
self.notebook.bind('<Control-bracketright>', self.nextTab)
enable_traversal() produit le comportement attendu, ce qui permet le contrôle-Shift-Tab et navigation Control-Tab. Les liaisons et produisent également le résultat souhaité, permettant la navigation Control-PageUp et Control-PageDown.
La troisième option échoue cependant. Je m'attendais à permettre la navigation via Control- [et Control-], mais ils ne font rien. J'ai confirmé que les keysyms sont corrects en vérifiant la page de manuel Tk appropriée, et les keysyms ne produisent pas une erreur dans l'interpréteur Python. D'après ce que je comprends, tkinter ne devrait pas avoir de problème avec deux événements liés au même rappel. Est-ce que je fais une erreur quelque part ou est-ce que les touches du support ne sont pas supportées? Merci!
trouvé le problème. Même si aucune exception n'a été soulevée, il y avait un problème dans la fonction de rappel. Une fois que cela a été réparé, tout a fonctionné comme prévu. La raison pour laquelle j'étais confus était que la méthode Notebook.enable_traversal() fournit deux ensembles de liaisons: Control-Tab et Control-Shift-Tab, ainsi que Control-PageUp et Control-PageDown. La deuxième paire de liaisons n'est pas documentée dans tkinter.ttk. – IJKLefty