Блокировать ярлыки уровня приложения в текстовом поле редактора ярлыков

Мне нужно разрешить пользователям изменять сочетания клавиш для некоторых действий в моем приложении в диалоге настроек моего приложения. Я создал подкласс QLineEdit, чтобы создать элемент управления, который принимает комбинации клавиш и отображает комбинацию (например: если пользователь нажимает Ctrl и I, будет отображаться редактирование линии Ctrl + я).

Если я введу ярлык уже существующего действия на уровне приложения в редактировании строки, нажатие этой клавиши не будет получено редактированием строки, и вместо этого будет запущено соответствующее действие. Это поведение приемлемо для меня, но проблема в том, что поведение не согласуется с некоторыми специальными ярлыками, такими как Ctrl + С, Ctrl + , и т. д. Если я уже назначил такой специальный ярлык какому-либо действию и попытался установить тот же самый ярлык для какого-либо другого действия, редактирование строки получает событие (в отличие от других ярлыков), и ранее назначенное действие не запускается.

Кто-нибудь знает способ отключения ярлыков на уровне приложения, чтобы я мог получать события в строке редактирования и сам проверять наличие дубликатов ярлыков? Или кто-нибудь может предложить способ последовательной обработки сценария, когда пользователь вводит уже существующий ярлык в другой ярлык?

0

Решение

Вы не должны использовать QLineEdit для этого вообще. Qt имеет специальный виджет для этого. это QKeySequenceEdit, Попробуйте этот виджет.

http://qt-project.org/doc/qt-5/qkeysequenceedit.html

2

Другие решения


По вопросам рекламы [email protected]