网站的支付系统怎么做的,网站建设数据库实训体会,商城网站开发文档,宁波建网站需要什么1.1 焦点窗口
指的是当前时刻拥有键盘输入的窗口。
Qt提供了如下接口#xff0c;用于设置窗口是否是”可获取焦点“窗口#xff1a;
void QWidget::setFocusPolicy(Qt::FocusPolicy policy); Qt::FocusPolicy Qt::TabFocus 与焦点链相关#xff0c;详解见下一…1.1 焦点窗口
指的是当前时刻拥有键盘输入的窗口。
Qt提供了如下接口用于设置窗口是否是”可获取焦点“窗口
void QWidget::setFocusPolicy(Qt::FocusPolicy policy); Qt::FocusPolicy Qt::TabFocus 与焦点链相关详解见下一小节 Qt::ClickFocus Qt::StrongFocus Qt::WheelFocus Qt::NoFocus 不可获取焦点
setFocusPolicy()的参数值可以是上述5个值中的任意一种当参数值为前4个的时候当前窗口可以获取焦点当参数值为Qt::Nofocus的时候当前窗口不可获取焦点。
1.2 焦点链
Qt除了把窗口对象组织成树状结构外还把这些窗口组织成了一个双向链表结构这个链表叫做焦点链。焦点链上每个节点代表一个窗口默认情况下窗口在焦点链上的先后位置与用户把窗口添加到窗口树的先后顺序有关越早添加到窗口树上的窗口其在焦点链中的位置越靠前。
通过按Tab或者ShiftTab可以实现焦点在各个窗口之间循环移动。焦点移动顺序与焦点链相关它的移动规律如下
1点击Tab键焦点链指针向后移动直至碰到第一个FocusPolicy为TabFocus的窗口并设置该窗口为焦点窗口
2点击ShiftTab焦点链指针向前移动直至碰到第一个FocusPolicy为TabFocus的窗口并设置该窗口为焦点窗口
Qt提供了下列结构用于获取焦点链信息
//返回此部件焦点链中的下一个部件 QWidget* QWidget::nextInFocusChain() const; //返回此部件焦点链中的前一个部件 QWidget* QWidget::previousInFocusChain() const;
此外我们还可以调整焦点链中节点的先后顺序
// 将焦点顺序中的部件 second 放置在部件 first 之后 static void QWidget::setTabOrder(QWidget* first, QWidget* second);
比如若默认的焦点链顺序为 a-b-c-d则
setTabOrder(d,c); //改变后焦点链的顺序为 a-b-d-c setTabOrder(b,a); //改变后焦点链的顺序为 b-a-d-c
1.3 焦点事件
与焦点事件处理相关的函数如下
void QWidget::focusInEvent(QFocusEvent *event); void QWidget::focusOutEvent(QFocusEvent *event);
当焦点从一个部件移动到另一个部件时会触发QFocusEvent事件这个事件会被发送给原焦点窗口和当前焦点窗口原焦点窗口执行focusOutEvent()新焦点窗口执行focusInEvent()