QFocusFrame Class
QFocusFrame 控件提供了一个焦点框,该焦点框可以位于控件正常可绘制区域之外。更多内容...
| 标题: | #include <QFocusFrame> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| 继承自: | QWidget |
公共函数
| QFocusFrame(QWidget *parent = nullptr) | |
| virtual | ~QFocusFrame() |
| void | setWidget(QWidget *widget) |
| QWidget * | widget() const |
受保护函数
| virtual void | initStyleOption(QStyleOption *option) const |
重新实现的受保护函数
| virtual bool | event(QEvent *e) override |
| virtual bool | eventFilter(QObject *o, QEvent *e) override |
| virtual void | paintEvent(QPaintEvent *) override |
详细说明
通常情况下,应用程序无需自行创建 QFocusFrame,因为 `QStyle ` 会为您处理这一细节。样式编写者可以选择使用 QFocusFrame,以便在小部件的可绘制几何区域之外设置焦点区域。 这样一来,就不需要为小部件获得焦点而预留空间,只需通过QFocusFrame::setWidget 在QWidget 上进行设置即可。不过,在自定义小部件上创建自己的QFocusFrame,并通过QWidget::setGeometry 手动设置其几何形状也是允许的,但当获得焦点的小部件改变大小或位置时,将无法获得自动定位功能。
成员函数文档
QFocusFrame::QFocusFrame(QWidget *parent = nullptr)
创建一个 QFocusFrame。
该焦点框不会监听parent 的更新,而是可以手动放置,或通过QFocusFrame::setWidget 进行定位。QFocusFrame会设置Qt::WA_NoChildEventsForParent 属性;因此,其父容器将不会收到QEvent::ChildAdded 事件,这使得在QSplitter 或其他监听子控件事件的控件内部,可以手动设置QFocusFrame的几何属性。
另请参阅 QFocusFrame::setWidget()。
[virtual noexcept] QFocusFrame::~QFocusFrame()
析构函数。
[override virtual protected] bool QFocusFrame::event(QEvent *e)
重写了:QWidget::event(QEvent *event)。
[override virtual protected] bool QFocusFrame::eventFilter(QObject *o, QEvent *e)
重写了:QObject::eventFilter(QObject *watched, QEvent *event)。
[virtual protected] void QFocusFrame::initStyleOption(QStyleOption *option) const
使用QFocusFrame 中的值初始化 `option `。当子类需要一个 `QStyleOption`,但又不想自己填写所有信息时,此方法非常有用。
另请参阅 QStyleOption::initFrom()。
[override virtual protected] void QFocusFrame::paintEvent(QPaintEvent *)
重写了:QWidget::paintEvent(QPaintEvent *event)。
void QFocusFrame::setWidget(QWidget *widget)
QFocusFrame 将跟踪widget 的变化,并自动调整自身大小。如果被监视控件的父控件发生变化,QFocusFrame 将跟随该控件,并自动将其自身放置在该控件周围。如果被监视控件被删除,QFocusFrame 将将其设置为零。
另请参阅 QFocusFrame::widget()。
QWidget *QFocusFrame::widget() const
返回当前被监视的小部件,以便自动调整大小和更新。
另请参阅 QFocusFrame::setWidget()。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.