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

如何在Qt小部件中捕获Tab键,qt,qt5,qwidget,Qt,Qt5,Qwidget,我想实现我自己的序列,使用Tab键更改活动子小部件的焦点。如何捕获Tab键按下事件?我使用的是Qt5.2,如果有一个鼠标按下事件或一个事件过滤器,那么就有一个QKeyEvent 然后,仅在按下tab键时执行操作 key_event->button() == Qt::Key_Tab 有一个鼠标按下事件或事件过滤器,到达您有一个QKeyEvent 然后,仅在按下tab键时执行操作 key_event->button() == Qt::Key_Tab 若你们想用Tab改变焦点,你们不需

我想实现我自己的序列,使用Tab键更改活动子小部件的焦点。如何捕获Tab键按下事件?我使用的是Qt5.2,如果有一个鼠标按下事件或一个事件过滤器,那么就有一个
QKeyEvent

然后,仅在按下tab键时执行操作

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

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

然后,仅在按下tab键时执行操作

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

若你们想用Tab改变焦点,你们不需要做那个些工作,Qt将其作为一个特性

首先:通过
QWidget::setFocusPolicy(Qt::FocusPolicy策略)将所需的小部件设置为
Qt::TabFocus
Qt::StrongFocus

例如,如果要在3
QLineEdit
和1
QCombobox
之间旋转,则必须确保其焦点策略设置正确。(通常,
Qt::TabFocus
Qt::StrongFocus
将设置为默认值,但有时会设置为默认值)

第二步:进入设计器模式并单击“
编辑选项卡顺序
”进入选项卡顺序编辑模式

第三:看到数字后,单击它们,直到获得所需的顺序

(图片来自Qt官方网站)


如果你想用Tab改变焦点,你不需要做这些工作,Qt将其作为一项功能

首先:通过
QWidget::setFocusPolicy(Qt::FocusPolicy策略)将所需的小部件设置为
Qt::TabFocus
Qt::StrongFocus

例如,如果要在3
QLineEdit
和1
QCombobox
之间旋转,则必须确保其焦点策略设置正确。(通常,
Qt::TabFocus
Qt::StrongFocus
将设置为默认值,但有时会设置为默认值)

第二步:进入设计器模式并单击“
编辑选项卡顺序
”进入选项卡顺序编辑模式

第三:看到数字后,单击它们,直到获得所需的顺序

(图片来自Qt官方网站)


以上显示tab focus抱歉没有完全阅读问题描述,这回答了标题所说的,但是捕获tab键eventtitle是“如何捕获tab键”虽然上面显示tab focus抱歉没有完全阅读问题描述,这回答了标题所说的,但是捕获tab键eventtitle是“如何捕获选项卡键“虽然这是对我问题的准确回答。然而,在某些情况下,编辑制表符顺序不足以实现这一目的。例如,如果表单位于选项卡小部件中,则在切换到页面上的最后一个小部件以切换到下一个选项卡页面之后。在提问时,我应该更具体一点:)@UgaBuga,就像我在帖子中说的:“有时你可能想避免一些小部件被标记。”(查看链接了解更多信息)在你的示例中,你所需要的只是将TabWidget设置为
Qt::ClickFocus
,这样你就不会用tab键切换到下一个选项卡页面。此外,焦点策略可以动态设置,因此它足以实现您想要的技巧。这是对我问题的准确回答。然而,在某些情况下,编辑制表符顺序不足以实现这一目的。例如,如果表单位于选项卡小部件中,则在切换到页面上的最后一个小部件以切换到下一个选项卡页面之后。在提问时,我应该更具体一点:)@UgaBuga,就像我在帖子中说的:“有时你可能想避免一些小部件被标记。”(查看链接了解更多信息)在你的示例中,你所需要的只是将TabWidget设置为
Qt::ClickFocus
,这样你就不会用tab键切换到下一个选项卡页面。此外,焦点策略可以动态设置,因此它足以实现您想要的技巧。