未检测到Qt键盘修改器shift键和其他按键

未检测到Qt键盘修改器shift键和其他按键,qt,c++11,qt5,Qt,C++11,Qt5,此if语句未执行。有人能指出这个问题吗 我正在尝试检测Qt keypress事件中的shift+h keypress。我正在使用Qt5.9 检测到键事件,但if语句的计算结果不为true 我无法将代码放入if语句中。我在Mac OS X el capitan上e->键无法处理大小写差异 如果在windows中使用e->key SHIFT+H和SHIFT+H By caps lock,则两者都是相同的 如果您想专门处理SHIFT+h小“h”,请使用e->text 通过应用CAPS LOCK,在Wi

此if语句未执行。有人能指出这个问题吗

我正在尝试检测Qt keypress事件中的shift+h keypress。我正在使用Qt5.9

检测到键事件,但if语句的计算结果不为true

我无法将代码放入if语句中。我在Mac OS X el capitan上

e->键无法处理大小写差异

如果在windows中使用e->key SHIFT+H和SHIFT+H By caps lock,则两者都是相同的

如果您想专门处理SHIFT+h小“h”,请使用e->text

通过应用CAPS LOCK,在Windows上测试以下内容:

if(e->modifiers() == Qt::ShiftModifier && e->key() == Qt::Key_H)

事件执行了吗?是的。。if语句不工作可能与Change ife->modifiers==Qt::ShiftModifier&&e->key==Qt::key\u H to ife->modifiers&Qt::ShiftModifier&&e->key==Qt::key\u Hdidnt工作重复。看起来这个ife->modifiers&Qt::KeyboardModifier::ShiftModifier&&e->key==Qt::key\u HIt实际上不起作用。我必须使用:ife->text==QString'H。谢谢你的建议。
if (e->modifiers() == Qt::ShiftModifier && e->text() == QString('h'))
{
    QString str = e->text();
    std::cout << str.toLatin1().data() << endl;
}