如何在Qt小部件中捕获Tab键

时间:2014-06-09 09:58:47

标签: qt qt5 qwidget

我想使用Tab键实现我自己的序列来更改活动子窗口小部件的焦点。如何捕获Tab键按下事件?我使用的是Qt5.2

2 个答案:

答案 0 :(得分:6)

如果你想用 Tab 更改焦点,你不需要做这些工作,Qt将它作为一个功能。

首先:Qt::TabFocus

将所需的小部件设置为Qt::StrongFocusQWidget::setFocusPolicy( Qt::FocusPolicy policy )

例如,如果您要在3 QLineEdit和1 QCombobox之间轮换,则必须确保其焦点政策已设置正确。 (通常会将Qt::TabFocusQt::StrongFocus设置为默认值,但有时会you might want to escape some widgets from being tabbed

第二:进入设计师模式并点击" Edit Tab Order "进入标签顺序编辑模式

enter image description here

第三:看到这些数字后,点击它们,直到得到所需的序列顺序。

(图片来自Qt官方网站)

enter image description here

答案 1 :(得分:1)

有鼠标按下事件或事件过滤器,到达QKeyEvent

的位置

然后只有在按下标签时才会执行某些操作

key_event->button() == Qt::Key_Tab