我想使用Tab键实现我自己的序列来更改活动子窗口小部件的焦点。如何捕获Tab键按下事件?我使用的是Qt5.2
答案 0 :(得分:6)
如果你想用 Tab 更改焦点,你不需要做这些工作,Qt将它作为一个功能。
首先:按Qt::TabFocus
Qt::StrongFocus
或QWidget::setFocusPolicy( Qt::FocusPolicy policy )
例如,如果您要在3 QLineEdit
和1 QCombobox
之间轮换,则必须确保其焦点政策已设置正确。 (通常会将Qt::TabFocus
或Qt::StrongFocus
设置为默认值,但有时会you might want to escape some widgets from being tabbed)
第二:进入设计师模式并点击" Edit Tab Order
"进入标签顺序编辑模式
第三:看到这些数字后,点击它们,直到得到所需的序列顺序。
(图片来自Qt官方网站)
答案 1 :(得分:1)
有鼠标按下事件或事件过滤器,到达QKeyEvent
然后只有在按下标签时才会执行某些操作
key_event->button() == Qt::Key_Tab