擅长:python、mysql、java
<p>单击该按钮将使其获得键盘焦点,更重要的是,从具有相同快捷方式设置的任何其他小部件中移除焦点。在</p>
<p>所有可编辑的输入小部件(如<code>QLineEdit</code>,<code>QTextEdit</code>等)都对各种操作进行了硬编码<a href="http://doc.qt.io/qt-5/qlineedit.html#details" rel="nofollow">default key bindings</a>,包括<kbd>Ctrl+Z</kbd>(这将撤消最后一个操作)。如果这样的小部件具有键盘焦点,那么它的快捷方式将优先于为按钮设置的快捷方式(反之亦然)。在</p>
<p>当多个小部件具有相同的快捷方式时,可以设置事件筛选器并使用<code>ShortcutOverride</code>来消除它们之间的歧义:</p>
<pre><code> self.lineEdit.installEventFilter(self)
...
def eventFilter(self, source, event):
if (event.type() == QtCore.QEvent.ShortcutOverride and
event.modifiers() == QtCore.Qt.ControlModifier and
event.key() == QtCore.Qt.Key_Z):
# eat the shortcut on the line-edit
return True
return super(Window, self).eventFilter(source, event)
</code></pre>
<p>然而,作为一个用户,我真的不喜欢那些做这种事情的应用程序。当我使用标准输入小部件时,我希望能够使用所有标准键盘绑定。如果它们没有如预期的那样工作,那看起来就像一个bug。在</p>