Home / Programmazione / Python / Scorciatoia da tastiera su Frame in wxPython
Mattepuffo

Scorciatoia da tastiera su Frame in wxPython

Scorciatoia da tastiera su Frame in wxPython

Oggi vediamo come impostare un evento da tastiera su Frame in wxPython.

Quello che vogliamo ottenere è la chiusura del programma premendo i classici Ctrl+Q.

Per fare questo dobbiamo usare l'oggetto AcceleratorTable, che ci permette appunto di specificare una scorciatoia da tastiera per un menu o per un comando.
Quindi in termini di codice:

import wx

class Form(wx.Frame):

    def __init__(self):
        # INIT FRAME
        wx.Frame.__init__(self, None, title = "Python YoutubeDL", size = (500, 70), style = wx.DEFAULT_FRAME_STYLE ^ wx.RESIZE_BORDER)
        # EVENTO PER CHIUSURA FRAME
        randomId = wx.NewId()
        self.Bind(wx.EVT_MENU, self.closeProgram, id = randomId)
        closeAccelTbl = wx.AcceleratorTable([(wx.ACCEL_CTRL, ord('Q'), randomId)])
        self.SetAcceleratorTable(closeAccelTbl)

    def closeProgram(self, event):
        self.Close()

Nel costruttore definiamo le proprietò del Frame.

Ad essere sincero non saprei come spiegarvi meglio di così il tutto; una delle cose belle di Python è che facile da capire una volta che lo conosci.

In pratica impostiamo un evento che intercetta Ctrl+Q che richiama la funzione closeProgram.

Notate i parametri passati alla funzione.

Ciao!