Spec-Zone.ru › Qt 5.6

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

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

Spec-Zone.ru

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