Звук по кнопке и по клавише

У меня реализован звук по нажати кнопки в программе, а как сделать так, чтобы я например нажимал 1 на клавиатуре, и выходил такой же звук, если бы я нажал на первую кнопку. Так же со второй кнопкой.

Вот код:

import sys
from PyQt5 import QtMultimedia, QtCore
from PyQt5.QtWidgets import QWidget, QPushButton, QApplication


class Guitar(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setGeometry(250, 55, 1200, 800)
        self.setWindowTitle('Клавиши')

        self.first_button = QPushButton('Первая клавиша(клавиша 1)', self)
        self.first_button.resize(170, 50)
        self.first_button.move(40, 100)
        self.first_button.clicked.connect(lambda: self._play('D:\\Downloads\\First_str.mp3'))  

        self.second_button = QPushButton('Вторая клавиша(клавиша 2)', self)
        self.second_button.resize(170, 50)
        self.second_button.move(40, 200)
        self.second_button.clicked.connect(lambda: self._play('D:\\Downloads\\Second_str.mp3')) 

    def _play(self, url):
        self.url = QtCore.QUrl.fromLocalFile(url)
        self.content = QtMultimedia.QMediaContent(self.url)
        self.player = QtMultimedia.QMediaPlayer()
        self.player.setMedia(self.content)
        self.player.play()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Guitar()
    ex.show()
    sys.exit(app.exec_())

Ответы (1 шт):

Автор решения: Alexander Chernin

Надо перегрузить метод QWidget.keyPressEvent, либо QWidget.keyReleaseEvent.

Например (коды кнопок):

...
class Guelar(QWidget):

    ...

    def keyPressEvent(self, e):
        if e.key() == Qt.Key_1:
            self._play('D:\\Downloads\\First_str.mp3')
        elif e.key() == Qt.Key_2:
            self._play('D:\\Downloads\\Second_str.mp3')
...
→ Ссылка