如何检查 [Shift + Tab] 在 QT 中是否被按下

Gri*_*ort 4 c++ qt qkeyevent

如何检查是否按住 SHIFT 键并使用 QKeyEvent 按下 TAB 键?

我试过使用:

(event->key() == Qt::Key_Tab && event->modifiers() == Qt::ShiftModifier)
Run Code Online (Sandbox Code Playgroud)

但是,当按住 shift 键时event->key()不等于Qt::Key_Tab

eyl*_*esc 7

如果event->key()以十六进制格式打印:

qDebug()<<QString("key: 0x%1").arg(event->key(), 8, 16, QChar('0'));
Run Code Online (Sandbox Code Playgroud)

你得到了什么:"key: 0x01000002"然后检查文档,你会看到关键是:

Qt::Key_Backtab 0x01000002
Run Code Online (Sandbox Code Playgroud)

所以你必须使用那个键:

if(event->key() == Qt::Key_Backtab)
Run Code Online (Sandbox Code Playgroud)