欢迎访问Ningto's博客

Menu
  • 首页
  • 归档
  • 关于
  • 书签
  • 必应壁纸
  • IT聚合
  • 工具
    • 我的工具列表
    • 我的网盘
    • 必应每日壁纸API
    • Html转Markdown
    • 仙尘光标
Menu

QWidget QLabel没有响应keyEvent键盘事件

最后更新 2020-06-23 06:42:59   阅读量 1423

在Qt中我们经常通过重写下面两种虚函数来实现按键事件

virtual void keyPressEvent(QKeyEvent *event);
bool eventFilter(QObject* watched, QEvent* event);

但是有时候会遇到无法触发的情况(特别是QWidget,QLabel),这个时候我们会考虑是不是被父窗口给截获了没有传递给子窗口。

如果依旧没有解决问题,那可能是这个widget没有焦点的缘故,通常可以通过鼠标点击和tab键可以获取焦点,但是像QWidget、QLabel即使你鼠标点上去了它也不会有焦点的,所以它触发不了键盘事件,你应该给它设置一个焦点获取的策略,而不应该是Qt::NoFocus,如下代码接收tab和click焦点。

setFocusPolicy(Qt::StrongFocus);

只有获取了焦点才能响应按键事件

(转载本站文章请注明作者和出处:泞途 - ningto.com)

下一篇 – Mac安装国内版homebrew
上一篇 – golang设置桌面壁纸

  1. Qt

toningto@outlook.com

标签云

Life Android Javascript Python Windows Product Go Tools Java MQ Qt Node.js Tips Shell Design MongoDB Others Mac Mobile React C/C++ Web Boost Linux IOS Bug Database

推广链接

【腾讯云】云产品限时秒杀,爆款1核2G云服务器,首年99元

多谢支持,用了好几年,服务很稳定支持多设备!

其他

文章RSS

Copyright © 2016 Welcome To Ningto Blog | 鄂ICP备17003086号-2