QFocusFrame 类

QFocusFrame 小部件提供了一个可以位于小部件常规可画区域之外的聚焦框。 更多...

头文件 #include <QFocusFrame>
CMakefind_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmakeQT += widgets
继承 QWidget

公共函数

QFocusFrame(QWidget *parent = nullptr)
virtual~QFocusFrame()
voidsetWidget(QWidget *widget)
QWidget *widget() const

保护函数

virtual voidinitStyleOption(QStyleOption *option) const

重实现保护函数

virtual boolevent(QEvent *e) override
virtual booleventFilter(QObject *o, QEvent *e) override
virtual voidpaintEvent(QPaintEvent *) override

详细描述

通常,应用程序不需要创建自己的 QFocusFrame,因为 QStyle 将为您处理这些细节。样式编写者可以可选地使用 QFocusFrame 以在部件的可画几何体外部有一个聚焦区域。这样,就不需要为聚焦的部件预留空间,只需在具有 QFocusFrame::setWidget 的高斯Widget 上设置即可。然而,可以在自定义窗口上创建自己的 QFocusFrame 并通过 QWidget::setGeometry 手动设置其几何形状,但这样在聚焦部件改变大小或位置时将不会得到自动放置。

成员函数文档

QFocusFrame::QFocusFrame(QWidget *parent = nullptr)

构造一个 QFocusFrame。

聚焦框不会监视 parent 以进行更新,而是可以手动放置或通过使用 QFocusFrame::setWidget。QFocusFrame 设置 Qt::WA_NoChildEventsForParent 属性;因此,父窗口不会收到一个 QEvent::ChildAdded 事件,这将使得在 QSplitter 或其他监视子事件的小部件内部手动设置 QFocusFrame 的几何形状成为可能。

另请参阅QFocusFrame::setWidget().

[虚拟 noexcept] QFocusFrame::~QFocusFrame()

析构函数。

[覆盖虚保护] bool QFocusFrame::event(QEvent *e)

重实现: QWidget::event(QEvent *event).

[覆盖虚保护] bool QFocusFrame::eventFilter(QObject *o, QEvent *e)

重实现: QObject::eventFilter(QObject *watched, QEvent *event).

[虚保护] void QFocusFrame::initStyleOption(QStyleOption *option) const

使用此 QFocusFrame 的值初始化 option。该方法对于子类非常有用,当它们需要一个 QStyleOption,但不想自己填写所有信息时。

另请参阅QStyleOption::initFrom().

[覆盖虚保护] 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().

© 2024 Qt 公司. 本文档中的贡献包括各自所有者的版权。本文档按 GNU 自由文档许可版 1.3 的条款发布,该许可由自由软件基金会发布。Qt 和相应的标志是芬兰的 Qt 公司及其全球子公司和关联公司的商标。所有其他商标均为各自所有者的财产。