Класс QFrame
Класс QFrame — базовый класс виджетов, которые могут иметь рамку. Подробнее...
| Заголовок: | #include <QFrame> |
| qmake: | QT += widgets |
| Наследует: | QWidget |
| Наследует: | QAbstractScrollArea, QLabel, QLCDNumber, QSplitter, QStackedWidget и QToolBox |
Открытые типы
| Перечисление | Shadow { Плоский, Выпуклый, Вогнутый } |
| Перечисление | Shape { БезРамки, Короб, Панель, СтилезированнаяПанель, ..., WinPanel } |
| Перечисление | StyleMask { МаскаТени, МаскаФормы } |
Свойства
|
|
Открытые функции
| QFrame(QWidget *parent = nullptr, Qt::WindowFlags f = ...) | |
| виртуальный | ~QFrame() |
| QRect | frameRect() const |
| QFrame::Shadow | frameShadow() const |
| QFrame::Shape | frameShape() const |
| int | frameStyle() const |
| int | frameWidth() const |
| int | lineWidth() const |
| int | midLineWidth() const |
| void | setFrameRect(const QRect &) |
| void | setFrameShadow(QFrame::Shadow) |
| void | setFrameShape(QFrame::Shape) |
| void | setFrameStyle(int style) |
| void | setLineWidth(int) |
| void | setMidLineWidth(int) |
Переопределённые открытые функции
| виртуальный QSize | sizeHint() const override |
- 214 открытых функций унаследовано от QWidget
- 31 открытых функций унаследовано от QObject
- 14 открытых функций унаследовано от QPaintDevice
Статические открытые члены
| const QMetaObject | staticMetaObject |
- 5 статических открытых членов унаследовано от QWidget
- 9 статических открытых членов унаследовано от QObject
Защищённые функции
| void | initStyleOption(QStyleOptionFrame *option) const |
Переопределённые защищённые функции
| виртуальный void | changeEvent(QEvent *ev) override |
| виртуальный bool | event(QEvent *e) override |
| виртуальный void | paintEvent(QPaintEvent *) override |
- 35 защищённых функций унаследовано от QWidget
- 9 защищённых функций унаследовано от QObject
- 1 защищённая функция унаследовано от QPaintDevice
Дополнительные унаследованные члены
- 19 открытых слотов унаследовано от QWidget
- 1 открытый слот унаследовано от QObject
- 3 сигналов унаследовано от QWidget
- 2 сигналов унаследовано от QObject
- 1 защищённый слот унаследовано от QWidget
Подробное описание
Класс QFrame — базовый класс виджетов, которые могут иметь рамку.
QMenu использует это, чтобы «поднять» меню над окружающим экраном. QProgressBar имеет «вогнутый» вид. QLabel имеет плоский вид. Рамки виджетов, таких как эти, могут быть изменены.
Класс QFrame также может быть использован непосредственно для создания простых заполнительных рамок без какого-либо содержимого.
Стиль рамки задаётся формой рамки и стилем тени, который используется для визуального разделения рамки от окружающих виджетов. Эти свойства могут быть установлены вместе с помощью функции setFrameStyle() и прочитаны с помощью frameStyle().
Формы рамок являются NoFrame, Box, Panel, StyledPanel, HLine и VLine; стили теней являются Plain, Raised и Sunken.
Виджет рамки имеет три атрибута, которые описывают толщину границы: lineWidth, midLineWidth и frameWidth.
- Ширина линии — ширина границы рамки. Её можно изменить, чтобы настроить внешний вид рамки.
- Ширина средней линии задаёт ширину дополнительной линии посередине рамки, которая использует третий цвет, чтобы получить особый 3D-эффект. Обратите внимание, что средняя линия отображается только для рамок Box, HLine и VLine, которые имеют выпуклый или вогнутый вид.
- Ширина рамки определяется стилем рамки, а функция frameWidth() используется для получения значения, определённого для используемого стиля.
Отступ между рамкой и содержимым рамки может быть настроен с помощью функции QWidget::setContentsMargins().
В этой таблице показаны некоторые комбинации стилей и ширины линий:
Документация по типам членов
enum QFrame::Shadow
Это перечисление определяет типы теней, используемые для придания 3D-эффекта рамкам.
| Константа | Значение | Описание |
|---|---|---|
QFrame::Plain |
0x0010 |
рамка и содержимое выровнены с окружением; отрисовка с использованием цвета палитры QPalette::WindowText (без эффекта 3D) |
QFrame::Raised |
0x0020 |
рамка и содержимое выглядят поднятыми; рисуется 3D-выступающая линия с использованием светлых и темных цветов текущей цветовой группы |
QFrame::Sunken |
0x0030 |
рамка и содержимое выглядят опущенными; рисуется 3D-вдавленная линия с использованием светлых и темных цветов текущей цветовой группы |
Отступ взаимодействует с QFrame::Shape, lineWidth() и midLineWidth(). См. изображение рамок в документации основного класса.
См. также QFrame::Shape, lineWidth() и midLineWidth().
enum QFrame::Shape
Этот перечисление определяет формы рамок.
| Константа | Значение | Описание |
|---|---|---|
QFrame::NoFrame |
0 |
QFrame ничего не рисует |
QFrame::Box |
0x0001 |
QFrame рисует рамку вокруг своего содержимого |
QFrame::Panel |
0x0002 |
QFrame рисует панель, чтобы содержимое выглядело поднятым или опущенным |
QFrame::StyledPanel |
0x0006 |
рисует прямоугольную панель с внешним видом, зависящим от текущего стиля графического интерфейса. Может быть поднятой или опущенной. |
QFrame::HLine |
0x0004 |
QFrame рисует горизонтальную линию, обрамляющую ничего (полезно в качестве разделителя) |
QFrame::VLine |
0x0005 |
QFrame рисует вертикальную линию, обрамляющую ничего (полезно в качестве разделителя) |
QFrame::WinPanel |
0x0003 |
рисует прямоугольную панель, которая может быть поднята или опущена, как в Windows 2000. Установка этой формы устанавливает ширину линии в 2 пикселя. WinPanel предоставлен для совместимости. Для независимости от стиля графического интерфейса рекомендуется использовать StyledPanel. |
Когда он не вызывает QStyle, Shape взаимодействует с QFrame::Shadow, lineWidth() и midLineWidth(), чтобы создать общий результат. См. изображение рамок в документации основного класса.
См. также QFrame::Shadow, QFrame::style() и QStyle::drawPrimitive().
enum QFrame::StyleMask
Это перечисление определяет две константы, которые могут быть использованы для извлечения двух компонентов frameStyle():
| Константа | Значение | Описание |
|---|---|---|
QFrame::Shadow_Mask |
0x00f0 |
Часть Shadow в frameStyle() |
QFrame::Shape_Mask |
0x000f |
Часть Shape в frameStyle() |
Как правило, вам не нужно использовать их, так как frameShadow() и frameShape() уже извлекают части Shadow и Shape из frameStyle().
См. также frameStyle() и setFrameStyle().
Документация по свойствам
frameRect : QRect
Это свойство содержит прямоугольник рамки.
Прямоугольник рамки — это прямоугольник, в котором рисуется рамка. По умолчанию это весь виджет. Установка прямоугольника не приводит к обновлению виджета. Прямоугольник рамки автоматически корректируется при изменении размера виджета.
Если вы установите прямоугольник в нулевой прямоугольник (например, QRect(0, 0, 0, 0)), то полученный прямоугольник рамки будет эквивалентен прямоугольнику виджета.
Функции доступа:
| QRect | frameRect() const |
| void | setFrameRect(const QRect &) |
frameShadow : Shadow
Это свойство хранит значение отступа рамки из стиля рамки.
Функции доступа:
| QFrame::Shadow | frameShadow() const |
| void | setFrameShadow(QFrame::Shadow) |
См. также frameStyle() и frameShape().
frameShape : Shape
Это свойство содержит значение формы рамки из стиля рамки.
Функции доступа:
| QFrame::Shape | frameShape() const |
| void | setFrameShape(QFrame::Shape) |
См. также frameStyle() и frameShadow().
frameWidth : const int
Это свойство содержит ширину рамки, которая рисуется.
Обратите внимание, что ширина рамки зависит от стиля рамки, а не только от ширины линии и ширины средней линии. Например, стиль, заданный NoFrame, всегда имеет ширину рамки 0, а стиль Panel имеет ширину рамки, эквивалентную ширине линии.
Функции доступа:
| int | frameWidth() const |
См. также lineWidth(), midLineWidth() и frameStyle().
lineWidth : int
Это свойство содержит ширину линии.
Обратите внимание, что общая ширина линии для рамок, используемых в качестве разделителей (HLine и VLine), задается свойством frameWidth.
Значение по умолчанию равно 1.
Функции доступа:
| int | lineWidth() const |
| void | setLineWidth(int) |
См. также midLineWidth и frameWidth.
midLineWidth : int
Это свойство содержит ширину средней линии.
Значение по умолчанию равно 0.
Функции доступа:
| int | midLineWidth() const |
| void | setMidLineWidth(int) |
См. также lineWidth и frameWidth.
Документация по функциям-членам
QFrame::QFrame(QWidget *parent = nullptr, Qt::WindowFlags f = ...)
Создаёт виджет рамки со стилем рамки NoFrame и шириной рамки 1 пиксель.
Аргументы parent и f передаются конструктору QWidget.
[virtual] QFrame::~QFrame()
Удаляет рамку.
[override virtual protected] void QFrame::changeEvent(QEvent *ev)
Переопределено из QWidget::changeEvent().
[override virtual protected] bool QFrame::event(QEvent *e)
Переопределено из QWidget::event().
int QFrame::frameStyle() const
Возвращает стиль рамки.
Значение по умолчанию — QFrame::Plain.
См. также setFrameStyle(), frameShape() и frameShadow().
[protected] void QFrame::initStyleOption(QStyleOptionFrame *option) const
Инициализирует option значениями из этого QFrame. Этот метод полезен для подклассов, когда им требуется QStyleOptionFrame, но они не хотят заполнять всю информацию самостоятельно.
Эта функция была введена в Qt 5.5.
См. также QStyleOption::initFrom().
[override virtual protected] void QFrame::paintEvent(QPaintEvent *)
Переопределено из QWidget::paintEvent().
void QFrame::setFrameStyle(int style)
Устанавливает стиль рамки в style.
style — это побитовое ИЛИ между стилем формы рамки и стилем тени рамки. См. изображение рамок в документации основного класса.
Формы рамок задаются в QFrame::Shape, а стили теней — в QFrame::Shadow.
Если ширина средней линии больше 0, для рамок типа Raised или Sunken Box, HLine и VLine рисуется дополнительная линия. Для рисования средних линий используется средний цвет текущей группы цветов.
См. также frameStyle().
[override virtual] QSize QFrame::sizeHint() const
Переопределено из QWidget::sizeHint().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qframe.html