focus
一个拥有焦点(focus)的QWidget才可以接受键盘事件。有输入焦点的窗口是活动窗口或活动窗口子窗口或子子窗口等。焦点移动的方式有以下几种:
- 按下Tab或Shift+Tab
- 注意:文本编译器(一般需要插入Tab),或者WebView(需要Tab来移动超链接焦点) 等
- Qt中,需要输入Tab的地方可以用 Ctrl+Tab 或 Ctrl+Shift+Tab 替代。
- 注意:文本编译器(一般需要插入Tab),或者WebView(需要Tab来移动超链接焦点) 等
- 点击一个QWidget
- 建议:只对接受文本输入的Widget启用该功能
- 按下键盘的快捷键
- QLabel::setBuddy(), QGroupBox,以及 QTabBar 支持
- 使用鼠标滚轮
- 用户移动焦点
- 程序将决定被设置focus的Widget的哪一个子Widget获得焦点
focusPolicy
一个QWidget获得焦点的方式受 focusPolicy 控制,setFocusPolicy(Qt::StrongFocus);- Qt::TabFocus
- 通过Tab键获得焦点
- Qt::ClickFocus
- 通过被单击获得焦点
- Qt::StrongFocus
- 可通过上面两种方式获得焦点
- Qt::NoFocus
- 不能通过上两种方式获得焦点(默认值),setFocus仍可使其获得焦点
keypress和keyrelease
首先,我们要是Widget获得焦点,一般设置focusPolicy。然后要对按键进行响应,我们只需要直接重载:
- keyPr
