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!
python wxpython wx.frame acceleratortable seta
Commentami!