2014-09-23 14 views
6

In parole semplici: come faccio a scorciatoie da tastiera (per eseguire una funzione) in PyQt5? Vedo che sono supposto QAction in un modo o nell'altro, ma non riesco a mettere insieme due e due, e tutti gli esempi non sembrano funzionare con PyQt5. GraziePyQt5: scorciatoie da tastiera con QAction

risposta

8

Usa QShortcut e QKeySequence classi come questo:

import sys 
from PyQt5.QtCore import * 
from PyQt5.QtGui import * 
from PyQt5.QtWidgets import * 

class Window(QWidget): 
    def __init__(self, *args, **kwargs): 
     QWidget.__init__(self, *args, **kwargs) 

     self.label = QLabel("Try Ctrl+O", self) 
     self.shortcut = QShortcut(QKeySequence("Ctrl+O"), self) 
     self.shortcut.activated.connect(self.on_open) 

     self.layout = QHBoxLayout() 
     self.layout.addWidget(self.label) 

     self.setLayout(self.layout) 
     self.resize(150, 100) 
     self.show() 

    @pyqtSlot() 
    def on_open(self): 
     print("Opening!") 

app = QApplication(sys.argv) 
win = Window() 
sys.exit(app.exec_()) 
+0

un'altra risposta eccellente - grazie! –

Problemi correlati