Spec-Zone.ru › Qt 5.9

Класс QFrame

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

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

QAbstractScrollArea, QLabel, QLCDNumber, QSplitter, QStackedWidget и QToolBox

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

Типы публичного интерфейса

Перечисление 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 = Q_NULLPTR, Qt::WindowFlags f = Qt::WindowFlags())
~QFrame()
QRect frameRect() const
Shadow frameShadow() const
Shape frameShape() const
int frameStyle() const
int frameWidth() const
int lineWidth() const
int midLineWidth() const
void setFrameRect(const QRect &)
void setFrameShadow(Shadow)
void setFrameShape(Shape)
void setFrameStyle(int style)
void setLineWidth(int)
void setMidLineWidth(int)

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

virtual QSize sizeHint() const
  • 214 открытых функций, унаследованных от QWidget
  • 32 открытых функций, унаследованных от QObject
  • 14 открытых функций, унаследованных от QPaintDevice

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

void initStyleOption(QStyleOptionFrame *option) const

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

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

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

  • 19 открытых слотов, унаследованных от QWidget
  • 1 открытый слот, унаследованный от QObject
  • 3 сигналов, унаследованных от QWidget
  • 2 сигнала, унаследованных от QObject
  • 5 статических открытых членов, унаследованных от QWidget
  • 11 статических открытых членов, унаследованных от QObject
  • 1 защищённый слот, унаследованный от QWidget

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

Класс 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 рисует прямоугольную панель с видом, зависящим от текущего стиля графического интерфейса. Она может быть поднята или опущена.
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

Это свойство хранит значение тени фрейма из стиля фрейма

Функции доступа:

Shadow frameShadow() const
void setFrameShadow(Shadow)

См. также frameStyle() и frameShape().

frameShape : Shape

Это свойство хранит значение формы фрейма из стиля фрейма

Функции доступа:

Shape frameShape() const
void setFrameShape(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 = Q_NULLPTR, Qt::WindowFlags f = Qt::WindowFlags())

Конструирует виджет фрейма со стилем фрейма NoFrame и шириной рамки 1 пиксел.

Аргументы parent и f передаются конструктору QWidget.

QFrame::~QFrame()

Уничтожает фрейм.

[virtual protected] void QFrame::changeEvent(QEvent *ev)

Переопределено из QWidget::changeEvent().

[virtual protected] bool QFrame::event(QEvent *e)

Переопределено из QObject::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().

[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().

[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.9/qframe.html

Spec-Zone.ru

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