Я работаю в проекте научного калькулятора с использованием Qt5, я использую QTextEdit в качестве дисплея калькулятора. Я хочу отключить ярлыки (Ctrl + A и Ctrl + C) на дисплее, так как я могу это сделать? Спасибо.Как отключить ярлыки в QTextEdit
ответ
Метод фильтра ключей, создайте фильтр событий, который возвращает false для горячих клавиш. Это немного утомительно, но должно получиться.
Не могли бы вы дать мне ссылку или указать мне, где читать «Фильтры для ключей» – Baso
Я нашел это, дайте мне знать, если это поможет. Не очень подробный, но должен помочь вам приступить к работе. http://www.qtforum.org/article/14293/qtextedit-how-to-turn-off-keys-intercepting-like-ctrl-z.html –
Фильтрация событий на LineEdit - это правильный способ сделать это, тогда вы можете игнорировать те, которые вы не хотите или переопределяете.
Грязный ярлык (не предназначен для каламбур), чтобы попытаться создать QShortcut и назначить его в пустой слот. Qt, вероятно, будет жаловаться на неоднозначные ярлыки и, вероятно, ничего не сделает с этим. Грязные я знаю :)
QShortcut *shortcut = new QShortcut(QKeySequence("Ctrl+A"), parent);
QObject::connect(shortcut, SIGNAL(activated()), receiver, SLOT(emptySlot()));
Может быть, вы даже можете игнорировать соединять часть ...
Если вы используете QTextEdit в качестве дисплея только, почему не использовать QLabel вместо этого? – 2013-02-10 22:08:41
Ну, я выбираю QTextEdit, потому что он имеет полосы прокрутки по умолчанию, и мне нужны свитки. Также я просто редактирую текст в будущих версиях. – Baso
Тогда QListWidget может быть и вариантом. Кстати, почему вы хотите запретить пользователям копировать текст с дисплея калькулятора? Я бы подумал, что пользователи хотели бы это сделать. – 2013-02-12 16:29:18