@phpkoder
Web-програмист

Как в PyQt запускать метод при нажатии на клавишу клавиатуры?

Есть класс , как в нем определить нажатия клавиши допустим (Ё) на клаве и запустить какой-то метод .
Вот часть кода класса :
import sys
from wikides import *
from wikicore import *
from PyQt5 import QtCore, QtGui, QtWidgets
class MyWin(QtWidgets.QMainWindow):
    def __init__(self, parent=None):
        QtWidgets.QWidget.__init__(self, parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.path = os.path.dirname(__file__)
        self.pathTemp = self.path +'/temp'
        # Клик по кнопке. 
        self.ui.pushButton.clicked.connect(self.WikiGo)

    def WikiGo(self):
        cmd = recToText()
        self.showText(cmd)
        # ....... и т. д.
  • Вопрос задан
  • 3235 просмотров
Решения вопроса 1
@Andy_U
Ха, только что по этим граблям прошел:

Добавьте метод:

def keyPressEvent(self, e):

            if e.key() in [QtCore.Qt.Key_Enter, QtCore.Qt.Key_Return]:
                self.WikiGo()
            else:
                super(MyWindow, self).keyPressEvent(e)


Вот только у меня класс от Ui_MainWindow наследуется, поэтому возможны варианты...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
TomasHuk
@TomasHuk
Попробуйте в класс MyWin добавить метод:
def keyPressEvent(self, e):
    if e.key() == QtCore.Qt.Key_Q:
        self.run_me()

Написано для клавиши Q. Поищите для Ё (~), хотя в этом не уверен.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы