[Python / Tkinter] Connectez les raccourcis clavier au menu

introduction

Dans le menu de Tkinter, vous pouvez le rendre joli en spécifiant l'option d'accélérateur lors de l'ajout d'un bouton de menu avec des commandes, mais en réalité, cela seul n'active pas les raccourcis clavier. Un travail de liaison avec la méthode est nécessaire. Voici un exemple pour cela.

échantillon

import tkinter as tk
from tkinter import ttk


class Application(tk.Frame):
    def __init__(self,master):
        super().__init__(master)
        self.pack()
        self.master.geometry("300x300")
        self.master.title("Menubar Sample")
        self.create_menubar()

    def create_menubar(self):
        menubar = tk.Menu(self)
        file_menu = tk.Menu(menubar, tearoff=0)
        menubar.add_cascade(label="File", menu=file_menu)
        file_menu.add_command(label="Open", command=self.onOpen, accelerator="Ctrl+O")
        self.master.config(menu=menubar)
        self.bind_all("<Control-o>", self.onOpen)

    def onOpen(self, event=None):
        print("onOpen")


def main():
    root = tk.Tk()
    app = Application(master=root)
    app.mainloop()


if __name__ == "__main__":
    main()

OnOpen est associé à l'application avec self.bind_all. L'événement est passé en argument lors de l'exécution de onOpen avec un raccourci clavier, mais pas lorsque le bouton de menu est cliqué directement. Par conséquent, la valeur initiale de l'événement est définie sur Aucun pour correspondre à ce dernier. Si c'est un problème, définissons-le séparément.

Recommended Posts

[Python / Tkinter] Connectez les raccourcis clavier au menu
Connectez python à mysql
Connectez-vous à BigQuery avec Python
Connectez-vous à Wikipedia avec Python
Comment mettre à jour Tkinter de Python vers la version 8.6
Connectez-vous à sqlite depuis python
Connectez-vous à la base de données utf8mb4 à partir de python
Connectez-vous à MySQL avec Python dans Docker
[Python / Tkinter] Comment passer des arguments à la commande
Connectez-vous à s3 avec AWS Lambda Python
Connectez-vous à Pepper avec l'interpréteur Python de PEPPER Mac
Connectez-vous à l'API Websocket de Coincheck depuis Python
Mis à jour vers Python 2.7.9
Introduction à Tkinter 1: Introduction
Connectez-vous à mysql
Comment utiliser tkinter avec python dans pyenv
Connectez-vous à MySQL avec Python sur Raspberry Pi
Utilisez Tor pour vous connecter depuis urllib2 [Python] [Mac]
"Backport" vers python 2
[Python] Modèle Tkinter
[Python] Changer l'entrée standard du clavier en fichier texte
[Python] tkinter Code susceptible d'être réutilisé
Comment installer Python
Changements de Python 3.0 à Python 3.5
Changements de Python 2 à Python 3.0
Réécrire le code Python2 en Python3 (2to3)
Introduction au langage Python
Introduction à OpenCV (python) - (2)
Remarque pour faire de python un démon
Introduction de Python 2.7 à CentOS 6.6
Note d'introduction Python Tkinter
Comment se connecter à diverses bases de données à partir de Python (PEP 249) et SQL Alchemy
Connectez-vous au réseau Bitcoin en utilisant pycoin (Python Cryptocoin Utili)
J'ai fait un chronomètre en utilisant tkinter avec python
J'ai essayé de créer une interface graphique à trois yeux côte à côte avec Python et Tkinter
Connectez Raspberry Pi à Alibaba Cloud IoT Platform avec «Python»