Spec-Zone.ru › Qt 6.1

Класс QFrame

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

Заголовок: #include <QFrame>
CMake: find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Наследует: QWidget
Наследуется от:

QAbstractScrollArea, QLabel, QLCDNumber, QSplitter, QStackedWidget и QToolBox

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

Типы публичного доступа

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

Свойства

  • frameRect : QRect
  • frameShadow : Shadow
  • frameShape : Shape
  • frameWidth : const int
  • lineWidth : int
  • midLineWidth : int

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

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

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

virtual void initStyleOption(QStyleOptionFrame *option) const

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

virtual void changeEvent(QEvent *ev) override
virtual bool event(QEvent *e) override
virtual void paintEvent(QPaintEvent *) override

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

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

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

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

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

Стиль рамки определяется формой рамки и стилем тени, которые используются для визуального отделения рамки от окружающих виджетов. Эти свойства можно установить вместе с помощью функции 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-вдавленная линия с использованием светлых и тёмных цветов текущей группы цветов

Shadow взаимодействует с QFrame::Shape, lineWidth() и midLineWidth(). Смотрите изображение рамок в основной документации класса.

См. такжеQFrame::Shape, lineWidth() и midLineWidth().

перечисление 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().

[read-only] 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 = Qt::WindowFlags())

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

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

[virtual] QFrame::~QFrame()

Уничтожает рамку.

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

Переопределяет: QWidget::changeEvent(QEvent *event).

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

Переопределяет: QWidget::event(QEvent *event).

int QFrame::frameStyle() const

Возвращает стиль рамки.

Значение по умолчанию — QFrame::Plain.

См. также setFrameStyle(), frameShape() и frameShadow().

[virtual protected, since 5.5] void QFrame::initStyleOption(QStyleOptionFrame *option) const

Инициализирует option значениями из этого QFrame. Этот метод полезен для подклассов, когда им требуется QStyleOptionFrame, но они не хотят заполнять всю информацию сами.

Эта функция была добавлена в Qt 5.5.

См. также QStyleOption::initFrom().

[override virtual protected] void QFrame::paintEvent(QPaintEvent *)

Переопределяет: QWidget::paintEvent(QPaintEvent *event).

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

Spec-Zone.ru

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