在Qt中响应应用程序范围的"热键"

sid*_*guy 23 qt keyboard-shortcuts

我有一个简单的Qt应用程序,我只想回答F12密钥,无论哪个小部件都有焦点.

是否有一些简单的信号或我可以挂钩的东西?

我想使用F12键来打开/关闭主窗口全屏.

Jér*_*ôme 27

我没试过,但这就是我要做的:

创建一个QShortcut并确保其上下文(with setContext())是Qt::ApplicationShortcut.

shortcut = new QShortcut(QKeySequence(Qt::Key_F12), parent);
shortcut->setContext(Qt::ApplicationShortcut);
Run Code Online (Sandbox Code Playgroud)

然后你只需要将一个插槽连接到QShortcut :: activated()信号.

  • “ parent”必须是指向现有小部件的指针。可以将“ QApplication :: desktop()”作为“父代”传递。值得一提的是,即使在应用程序上下文中,模态窗口也会阻止快捷方式。 (2认同)