Russian Qt Forum
Апрель 26, 2024, 21:32 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qt 5.5.0 поломали Key press events с модификаторами?  (Прочитано 2691 раз)
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« : Август 23, 2015, 19:45 »

Всем привет.

Кажется в Qt 5.5.0 некорректно возвращается event->key() при любом нажатом модивикаторе..

Например, вместо key: 49, 50 или 51 всегда возвращается 16777248 (при нажатом Shift).. т.е. всегда
возвращается код клавиши Shift...

Блин, также не работают примеры из: "Examples\Qt-5.5\multimediawidgets\player\".. т.е. не работают Alt + Enter (переход в FullScreen)..

Может кто проверить?

* Windows 10 x64
* Qt 5.5.0 + MSVC2013 x32
Записан

ArchLinux x86_64 / Win10 64 bit
PimenS
Крякер
****
Offline Offline

Сообщений: 371


Просмотр профиля
« Ответ #1 : Август 23, 2015, 21:23 »

Windows 7 x64
Qt 5.5.0 + Mingw

Код:
qDebug() << event->modifiers() << isFullScreen() << event->key();

Цитировать
QFlags<Qt::KeyboardModifiers>(ShiftModifier) false 77
QFlags<Qt::KeyboardModifiers>(ShiftModifier) false 74
QFlags<Qt::KeyboardModifiers>(ShiftModifier) false 72
QFlags<Qt::KeyboardModifiers>(ShiftModifier) false 71
QFlags<Qt::KeyboardModifiers>(ShiftModifier) false 70
QFlags<Qt::KeyboardModifiers>(ShiftModifier) false 68
QFlags<Qt::KeyboardModifiers>(ShiftModifier) false 83
QFlags<Qt::KeyboardModifiers>(ShiftModifier) false 70
QFlags<Qt::KeyboardModifiers>(ShiftModifier) false 71
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #2 : Август 23, 2015, 22:05 »

А нажатие Shift + любую цифру на цифровой клавиатуре (при включенной NumLock) что выводит?

у меня:

Цитировать
QFlags<Qt::KeyboardModifiers>(ShiftModifier) 16777248
QFlags<Qt::KeyboardModifiers>(KeypadModifier) 16777233
QFlags<Qt::KeyboardModifiers>(ShiftModifier) 16777248

при Shift + 1 (на цифровой клаве), т.е. код 16777233 это Key_End.. в не зависимости от того, включен ли NumLock или нет.
Записан

ArchLinux x86_64 / Win10 64 bit
PimenS
Крякер
****
Offline Offline

Сообщений: 371


Просмотр профиля
« Ответ #3 : Август 23, 2015, 22:29 »

Не думаю, что это баг. Скорее всего поменяли, какие-то настройки виджетов по умолчанию.

У меня разные виджеты по разному отрабатывают. Пример нажатия на цифровой клавиатуре (при включенной NumLock), цифры 1, 2, 3, 4, 5

Вар. 1. Пример player.

Цитировать
QFlags<Qt::KeyboardModifiers>(ShiftModifier) 16777248
QFlags<Qt::KeyboardModifiers>(KeypadModifier) 16777233
QFlags<Qt::KeyboardModifiers>(ShiftModifier) 16777248
QFlags<Qt::KeyboardModifiers>(KeypadModifier) 16777237
QFlags<Qt::KeyboardModifiers>(ShiftModifier) 16777248
QFlags<Qt::KeyboardModifiers>(KeypadModifier) 16777239
QFlags<Qt::KeyboardModifiers>(ShiftModifier) 16777248
QFlags<Qt::KeyboardModifiers>(KeypadModifier) 16777234
QFlags<Qt::KeyboardModifiers>(ShiftModifier) 16777248
QFlags<Qt::KeyboardModifiers>(KeypadModifier) 16777227
QFlags<Qt::KeyboardModifiers>(ShiftModifier) 16777248

Вар. 2. Виджет наследованный от QWidget.

Цитировать
QFlags<Qt::KeyboardModifiers>(ShiftModifier) 16777248
QFlags<Qt::KeyboardModifiers>(KeypadModifier) 16777233
QFlags<Qt::KeyboardModifiers>(ShiftModifier) 16777248
QFlags<Qt::KeyboardModifiers>(ShiftModifier) 16777248
QFlags<Qt::KeyboardModifiers>(ShiftModifier) 16777248
QFlags<Qt::KeyboardModifiers>(ShiftModifier) 16777248
QFlags<Qt::KeyboardModifiers>(KeypadModifier) 16777227
QFlags<Qt::KeyboardModifiers>(ShiftModifier) 16777248


Т.е при нажатии 2, 3, 4 с нажатым Shift, вообще выдает 16777248, а 1 и 5 16777233 и 16777227 соответственно.

ЗЫ. А у наследника QMainWindow

Цитировать
QFlags<Qt::KeyboardModifiers>(ShiftModifier) 16777248
QFlags<Qt::KeyboardModifiers>(KeypadModifier) 16777233
QFlags<Qt::KeyboardModifiers>(ShiftModifier) 16777248
QFlags<Qt::KeyboardModifiers>(KeypadModifier) 16777237
QFlags<Qt::KeyboardModifiers>(ShiftModifier) 16777248
QFlags<Qt::KeyboardModifiers>(ShiftModifier) 16777248
QFlags<Qt::KeyboardModifiers>(KeypadModifier) 16777234
QFlags<Qt::KeyboardModifiers>(ShiftModifier) 16777248
QFlags<Qt::KeyboardModifiers>(KeypadModifier) 16777227
QFlags<Qt::KeyboardModifiers>(ShiftModifier) 16777248

Здесь только у цифры 3 получается 16777248.
« Последнее редактирование: Август 23, 2015, 22:34 от PimenS » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 22.