2

我正在使用 Qt5 从事科学计算器项目,我使用 QTextEdit 作为计算器的显示。我想禁用显示中的(Ctrl + A 和 Ctrl + C)等快捷方式,我该怎么做呢?谢谢你。

4

2 回答 2

2

键过滤器方法,创建一个为热键返回 false 的事件过滤器。这有点乏味,但应该解决。

于 2013-02-10T21:10:54.593 回答
1

LineEdit 上的事件过滤是正确的方法,然后您可以忽略不想要的事件或覆盖行为。

一个肮脏的快捷方式(没有双关语)尝试是创建一个 QShortcut 并将其分配给一个空插槽。Qt 可能会抱怨不明确的快捷方式,并且可能不会对它做任何事情。肮脏的我知道:)

QShortcut *shortcut = new QShortcut(QKeySequence("Ctrl+A"), parent);
QObject::connect(shortcut, SIGNAL(activated()), receiver, SLOT(emptySlot()));

也许你甚至可以忽略连接部分......

于 2016-01-07T19:13:15.657 回答