Qt 在没有事件监听器的情况下获取应用程序状态

标签 qt keypress

我需要知道在 main() 启动时是否按下了某个键(比如 r)。请参阅:

int main(int argc, char *argv[])
{
    if(R is pressed)
    {} // Do a few things

    // Do amazing stuff whatever happened
    return a.exec();
}

但是我找不到一种方法可以适用于所有平台(win、mac、lin),我发现的唯一方法是针对 Windows 的一个技巧:Using GetKeyState()这不是很令人满意...

最佳答案

如果你想检查修饰键(shift、control、alt),你可以使用QGuiApplication::query KeyboardModifiers():

int main(int argc, char *argv[])
{
    if(QGuiApplication::queryKeyboardModifiers().testFlag(Qt::ShiftModifier))
    {} // Do a few things

    // Do amazing stuff whatever happened
    return a.exec();
}

关于Qt 在没有事件监听器的情况下获取应用程序状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25609976/

相关文章:

c# - 等待按键(或)N 秒过期

ruby - 在 Ruby 中,如何要求终端不回显按键?

c++ - 获取键状态函数?

flash - 使用 Flash 在 iOS 文本字段上捕获文本事件

qt - 如何在 Qt 中为无框窗口添加阴影

algorithm - 如何优化qt tablewidget刷新?

qt - QCoreApplication退出不工作

java - Selenium Webdriver (Java) ,需要将 "Space"keypress 发送到整个网站

c++ - ObjectList/Repeater 的 QML DefaultProperty

qt - QNetworkProxyFactory::systemProxyForQuery() 未反射(reflect)系统代理设置的更改