Класс 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.2/qfocusframe.html