Ah, I think I found the issue. QKeySequence::event() falls back to
QWidget::event() for KeyPress event types and QWidget::event() treats the
tabs as special here:
https://code.woboq.org/qt5/qtbase/src/widgets/kernel/qwidget.cpp.html#9006

However, this logic should not inherently apply to QKeySequenceEdit, so I
think QKeySequenceEdit::event() needs to take charge for key presses. Would
this be acceptable if I push this to gerrit?

git diff src/widgets/widgets/qkeysequenceedit.cpp
diff --git a/src/widgets/widgets/qkeysequenceedit.cpp
b/src/widgets/widgets/qkeysequenceedit.cpp
index 3dafb9396b..393e93e949 100644
--- a/src/widgets/widgets/qkeysequenceedit.cpp
+++ b/src/widgets/widgets/qkeysequenceedit.cpp
@@ -218,6 +218,9 @@ bool QKeySequenceEdit::event(QEvent *e)
     case QEvent::ShortcutOverride:
         e->accept();
         return true;
+    case QEvent::KeyPress:
+        keyPressEvent(dynamic_cast<QKeyEvent *>(e));
+        return true;
     default :
         break;
     }

>
_______________________________________________
Development mailing list
[email protected]
https://lists.qt-project.org/listinfo/development

Reply via email to