Spec-Zone.ru › Qt 5.11

Класс QFrame

Класс QFrame — базовый класс виджетов, которые могут иметь рамку. Подробнее...

Заголовок: #include <QFrame>
qmake: QT += widgets
Наследует: QWidget
Наследуется от:

QAbstractScrollArea, QLabel, QLCDNumber, QSplitter, QStackedWidget и QToolBox

  • Список всех членов, включая наследуемые

Типы public

перечисление Shadow { Plain, Raised, Sunken }
перечисление Shape { NoFrame, Box, Panel, StyledPanel, ..., WinPanel }
перечисление StyleMask { Shadow_Mask, Shape_Mask }

Свойства

  • frameRect : QRect
  • frameShadow : Shadow
  • frameShape : Shape
  • frameWidth : const int
  • lineWidth : int
  • midLineWidth : int
  • 59 свойств унаследовано от QWidget
  • 1 свойство унаследовано от QObject

Публичные функции

QFrame(QWidget *parent = nullptr, Qt::WindowFlags f = ...)
virtual ~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)

Переопределённые публичные функции

virtual QSize sizeHint() const override
  • 214 публичных функций унаследовано от QWidget
  • 34 публичных функций унаследовано от QObject
  • 14 публичных функций унаследовано от QPaintDevice

Защищённые функции

void initStyleOption(QStyleOptionFrame *option) const

Переопределённые защищённые функции

virtual void changeEvent(QEvent *ev) override
virtual bool event(QEvent *e) override
virtual void paintEvent(QPaintEvent *) override
  • 35 защищённых функций унаследовано от QWidget
  • 9 защищённых функций унаследовано от QObject
  • 1 защищённая функция унаследовано от QPaintDevice

Дополнительные унаследованные члены

  • 19 public slots унаследовано от QWidget
  • 1 public slot унаследовано от QObject
  • 3 сигналов унаследовано от QWidget
  • 2 сигналов унаследовано от QObject
  • 1 public переменной унаследовано от QObject
  • 5 статических публичных членов унаследовано от QWidget
  • 10 статических публичных членов унаследовано от QObject
  • 1 защищённый слот унаследовано от QWidget
  • 2 защищённых переменных унаследовано от QObject
  • 1 защищённый тип унаследовано от QPaintDevice

Подробное описание

Класс QFrame — базовый класс виджетов, которые могут иметь рамку.

QMenu использует это для «поднятия» меню над окружающим экраном. QProgressBar имеет вид «вдавленный». QLabel имеет плоский вид. Рамки виджетов, таких как эти, могут быть изменены.

QLabel label(...);
label.setFrameStyle(QFrame::Panel | QFrame::Raised);
label.setLineWidth(2);

QProgressBar pbar(...);
label.setFrameStyle(QFrame::NoFrame);

Класс QFrame также может использоваться напрямую для создания простых заглушек-рамок без какого-либо содержимого.

Стиль рамки задаётся формой рамки (frame shape) и стилем тени (shadow style), которые используются для визуального отделения рамки от окружающих виджетов. Эти свойства могут быть заданы вместе с помощью функции setFrameStyle() и прочитаны с помощью frameStyle().

Формы рамок — NoFrame, Box, Panel, StyledPanel, HLine и VLine; стили тени — Plain, Raised и Sunken.

Виджет рамки имеет три атрибута, описывающие толщину границы: lineWidth, midLineWidth и frameWidth.

  • Ширина линии — это ширина границы рамки. Она может быть изменена для настройки внешнего вида рамки.
  • Ширина средней линии задаёт ширину дополнительной линии посередине рамки, которая использует третий цвет для получения специального 3D-эффекта. Обратите внимание, что средняя линия рисуется только для рамок Box, HLine и VLine, которые подняты или опущены.
  • Ширина рамки определяется стилем рамки, и функция frameWidth() используется для получения значения, определённого для используемого стиля.

Отступ между рамкой и содержимым рамки может быть настроен с помощью функции QWidget::setContentsMargins().

В этой таблице показаны некоторые комбинации стилей и ширины линий:

Table of frame styles

Документация по типам членов

перечисление 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 отрисовывает прямоугольную панель с внешним видом, зависящим от текущего стиля GUI. Она может быть поднятой или опущенной.
QFrame::HLine 0x0004 QFrame отрисовывает горизонтальную линию, не обрамляющую ничего (полезно в качестве разделителя)
QFrame::VLine 0x0005 QFrame отрисовывает вертикальную линию, не обрамляющую ничего (полезно в качестве разделителя)
QFrame::WinPanel 0x0003 отрисовывает прямоугольную панель, которая может быть поднятой или опущенной, как в Windows 2000. Указание этой формы устанавливает ширину линии в 2 пикселя. WinPanel предоставляется для совместимости. Для независимости от стиля GUI мы рекомендуем использовать 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/archives/qt-5.11/qframe.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API