Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » PyQt5 как отлавливать нажатые клавиши? [RSS Feed]

#1 Май 23, 2017 09:56:06

coollervl
Зарегистрирован: 2017-05-23
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt5 как отлавливать нажатые клавиши?

переопределил метод

 def keyPressEvent(self, QKeyEvent):
        print(str(QKeyEvent))

но при нажатии разных клавиш выдача всегда одна
<PyQt5.QtGui.QKeyEvent object at 0xf5a49017c18>
как мне вообще это конвертировать в символы?

Офлайн

#2 Май 23, 2017 10:53:32

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9726
Репутация: +  843  -
Профиль   Отправить e-mail  

PyQt5 как отлавливать нажатые клавиши?

  
if event.key() == Qt.Key_A:
    print('A')



Отредактировано py.user.next (Май 23, 2017 10:53:52)

Офлайн

#3 Май 24, 2017 12:02:24

coollervl
Зарегистрирован: 2017-05-23
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt5 как отлавливать нажатые клавиши?

Спасибо, а как отлавливать русские буквы?

Офлайн

#4 Май 24, 2017 12:04:30

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2681
Репутация: +  182  -
Профиль   Отправить e-mail  

PyQt5 как отлавливать нажатые клавиши?

А тебе зачем?



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#5 Май 24, 2017 12:13:50

coollervl
Зарегистрирован: 2017-05-23
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt5 как отлавливать нажатые клавиши?

Rodegast
А тебе зачем?
у меня выход из программы по нажатию буквы Q, а если включена русская раскладка то по нажатию Й выдает ошибку

Офлайн

#6 Май 24, 2017 12:41:33

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2681
Репутация: +  182  -
Профиль   Отправить e-mail  

PyQt5 как отлавливать нажатые клавиши?

Тебе не надо keyPressEvent переопределять. Добавь в конструктор

 QtGui.QShortcut(QtGui.QKeySequence(QtCore.Qt.Key_Q), self, self.close)
и будет тебе счастье.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Отредактировано Rodegast (Май 24, 2017 16:04:23)

Офлайн

#7 Май 24, 2017 12:52:55

coollervl
Зарегистрирован: 2017-05-23
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt5 как отлавливать нажатые клавиши?

Rodegast
Тебе не надо keyPressEvent переопределять.
спасибо сработало.
а все таки если предопределять keyPressEvent как быть с русскими буквами? (это для общего понимания)

Офлайн

#8 Май 24, 2017 16:27:36

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2681
Репутация: +  182  -
Профиль   Отправить e-mail  

PyQt5 как отлавливать нажатые клавиши?

Для этого нужно определять клавишу по скан-коду. Т.е. использовать метод nativeScanCode в место key. Но значение этих кодов может зависить от типа клавиатуры, по этому лучше ничего не переопределять.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

  • Начало
  • » GUI
  • » PyQt5 как отлавливать нажатые клавиши?[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version