Класс QFocusFrame
Виджет QFocusFrame предоставляет рамку фокуса, которая может находиться за пределами обычной области рисования виджета. Подробнее...
| Заголовок: | #include <QFocusFrame> |
| CMake: | find_package(Qt6 COMPONENTS Widgets REQUIRED) 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 для определения области фокуса за пределами области рисования виджета. Таким образом, не нужно выделять место для виджета, чтобы он был в фокусе, а достаточно установить его на QWidget с помощью QFocusFrame::setWidget. Однако допустимо создать собственный QFocusFrame на пользовательском виджете и установить его геометрию вручную с помощью QWidget::setGeometry, но автоматическое размещение не будет происходить при изменении размера или расположения виджета в фокусе.
Документация по функциям-членам
QFocusFrame::QFocusFrame(QWidget *parent = nullptr)
Конструктор QFocusFrame.
Рамка фокуса не будет отслеживать обновления parent, а вместо этого может быть размещена вручную или с помощью QFocusFrame::setWidget. QFocusFrame устанавливает атрибут Qt::WA_NoChildEventsForParent; в результате родительский виджет не получит событие QEvent::ChildAdded, это позволит вручную установить геометрию QFocusFrame внутри QSplitter или другого виджета, отслеживающего события детей.
См. также QFocusFrame::setWidget().
[virtual] 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
Инициализирует option значениями из этого QFocusFrame. Этот метод полезен для подклассов, когда им требуется 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().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qfocusframe.html