Spec-Zone.ru › Qt 5.12

Класс QSizePolicy

Класс QSizePolicy — это атрибут макета, описывающий политику изменения размеров по горизонтали и вертикали. Подробнее...

Заголовок: #include <QSizePolicy>
qmake: QT += widgets
  • Список всех членов, включая унаследованные

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

перечисление ControlType { DefaultType, ButtonBox, CheckBox, ComboBox, ..., ToolButton }
флаги ControlTypes
перечисление Policy { Fixed, Minimum, Maximum, Preferred, ..., Ignored }
перечисление PolicyFlag { GrowFlag, ExpandFlag, ShrinkFlag, IgnoreFlag }

Функции публичного доступа

QSizePolicy()
QSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical, QSizePolicy::ControlType type = DefaultType)
QSizePolicy::ControlType controlType() const
Qt::Orientations expandingDirections() const
bool hasHeightForWidth() const
bool hasWidthForHeight() const
QSizePolicy::Policy horizontalPolicy() const
int horizontalStretch() const
bool retainSizeWhenHidden() const
void setControlType(QSizePolicy::ControlType type)
void setHeightForWidth(bool dependent)
void setHorizontalPolicy(QSizePolicy::Policy policy)
void setHorizontalStretch(int stretchFactor)
void setRetainSizeWhenHidden(bool retainSize)
void setVerticalPolicy(QSizePolicy::Policy policy)
void setVerticalStretch(int stretchFactor)
void setWidthForHeight(bool dependent)
void transpose()
QSizePolicy transposed() const
QSizePolicy::Policy verticalPolicy() const
int verticalStretch() const
QVariant operator QVariant() const
bool operator!=(const QSizePolicy &other) const
bool operator==(const QSizePolicy &other) const

Статические члены публичного доступа

const QMetaObject staticMetaObject

Связанные нечлены

uint qHash(QSizePolicy key, uint seed = ...)
QDataStream & operator<<(QDataStream &stream, const QSizePolicy &policy)
QDataStream & operator>>(QDataStream &stream, QSizePolicy &policy)

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

Класс QSizePolicy — это атрибут макета, описывающий политику изменения размеров по горизонтали и вертикали.

Политика размера виджета отражает его готовность к изменению размера различными способами и влияет на то, как виджет обрабатывается движком макета. Каждый виджет возвращает QSizePolicy, описывающую предпочтительную политику изменения размеров по горизонтали и вертикали при размещении. Вы можете изменить это для конкретного виджета, изменив свойство QWidget::sizePolicy.

QSizePolicy содержит два независимых значения QSizePolicy::Policy и два коэффициента растяжения; одно описывает политику размера виджета по горизонтали, а другое — по вертикали. Он также содержит флаг, указывающий, связаны ли высота и ширина предпочтительного размера.

Политики по горизонтали и вертикали можно задать в конструкторе и изменить с помощью функций setHorizontalPolicy() и setVerticalPolicy(). Коэффициенты растяжения можно установить с помощью функций setHorizontalStretch() и setVerticalStretch(). Флаг, указывающий, зависит ли sizeHint() виджета от ширины (например, для панели меню или метки с переходом на следующую строку), можно установить с помощью функции setHeightForWidth().

Текущие политики размеров и коэффициенты растяжения можно получить с помощью функций horizontalPolicy(), verticalPolicy(), horizontalStretch() и verticalStretch(). В качестве альтернативы используйте функцию transpose() для обмена горизонтальными и вертикальными политиками и коэффициентами растяжения. Функция hasHeightForWidth() возвращает текущее состояние флага, указывающего на зависимости размера подсказки.

Используйте функцию expandingDirections(), чтобы определить, может ли связанный виджет использовать больше места, чем указано его функцией sizeHint(), а также в каких направлениях он может расширяться.

Наконец, класс QSizePolicy предоставляет операторы сравнения этой политики размера с заданной политикой, а также оператор QVariant, хранящий эту QSizePolicy в качестве объекта QVariant.

См. также QSize, QWidget::sizeHint(), QWidget::sizePolicy и QLayoutItem::sizeHint().

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

перечисление QSizePolicy::ControlTypeфлаги QSizePolicy::ControlTypes

Это перечисление определяет различные типы виджетов с точки зрения взаимодействия с макетом:

Константа Значение Описание
QSizePolicy::DefaultType 0x00000001 Тип по умолчанию, если не указан другой.
QSizePolicy::ButtonBox 0x00000002 Экземпляр QDialogButtonBox.
QSizePolicy::CheckBox 0x00000004 Экземпляр QCheckBox.
QSizePolicy::ComboBox 0x00000008 Экземпляр QComboBox.
QSizePolicy::Frame 0x00000010 Экземпляр QFrame.
QSizePolicy::GroupBox 0x00000020 Экземпляр QGroupBox.
QSizePolicy::Label 0x00000040 Экземпляр QLabel.
QSizePolicy::Line 0x00000080 Экземпляр QFrame с QFrame::HLine или QFrame::VLine.
QSizePolicy::LineEdit 0x00000100 Экземпляр QLineEdit.
QSizePolicy::PushButton 0x00000200 Экземпляр QPushButton.
QSizePolicy::RadioButton 0x00000400 Экземпляр QRadioButton.
QSizePolicy::Slider 0x00000800 Экземпляр QAbstractSlider.
QSizePolicy::SpinBox 0x00001000 Экземпляр QAbstractSpinBox.
QSizePolicy::TabWidget 0x00002000 Экземпляр QTabWidget.
QSizePolicy::ToolButton 0x00004000 Экземпляр QToolButton.

Этот перечисление был добавлен или изменён в Qt 4.3.

Тип ControlTypes — это typedef для QFlags<ControlType>. Он хранит логическое ИЛИ комбинацию значений ControlType.

См. также setControlType() и controlType().

перечисление QSizePolicy::Policy

Это перечисление описывает различные типы размеров по измерениям, используемые при создании QSizePolicy.

Константа Значение Описание
QSizePolicy::Fixed 0 Метод QWidget::sizeHint() — единственно допустимый вариант, поэтому размер виджета не может увеличиваться или уменьшаться (например, вертикальное направление кнопки).
QSizePolicy::Minimum GrowFlag Метод sizeHint() минимален и достаточен. Виджет может быть расширен, но нет преимуществ в увеличении размера (например, горизонтальное направление кнопки). Он не может быть меньше размера, указанного в sizeHint().
QSizePolicy::Maximum ShrinkFlag Метод sizeHint() — максимальный. Виджет может быть уменьшен на любую величину без потери функциональности, если другим виджетам требуется пространство (например, разделительная линия). Он не может быть больше размера, указанного в sizeHint().
QSizePolicy::Preferred GrowFlag | ShrinkFlag Метод sizeHint() — оптимальный, но виджет может быть уменьшен и оставаться функциональным. Виджет может использовать дополнительное пространство, поэтому он должен получить как можно больше места (по умолчанию для QWidget).
QSizePolicy::Expanding GrowFlag | ShrinkFlag | ExpandFlag Метод sizeHint() — разумный размер, но виджет может быть уменьшен и оставаться функциональным. Виджет может использовать дополнительное пространство, поэтому он должен получить как можно больше места (например, горизонтальное направление горизонтальной полосы прокрутки).
QSizePolicy::MinimumExpanding GrowFlag | ExpandFlag Метод sizeHint() минимален и достаточен. Виджет может использовать дополнительное пространство, поэтому он должен получить как можно больше места (например, горизонтальное направление горизонтальной полосы прокрутки).
QSizePolicy::Ignored ShrinkFlag | GrowFlag | IgnoreFlag Метод sizeHint() игнорируется. Виджет получит как можно больше места.

См. также PolicyFlag, setHorizontalPolicy() и setVerticalPolicy().

перечисление QSizePolicy::PolicyFlag

Эти флаги комбинируются вместе для формирования различных значений Policy:

Константа Значение Описание
QSizePolicy::GrowFlag 1 Виджет может увеличиться за пределы своего размера, если необходимо.
QSizePolicy::ExpandFlag 2 Виджет должен получить как можно больше места.
QSizePolicy::ShrinkFlag 4 Виджет может уменьшиться ниже своего размера, если необходимо.
QSizePolicy::IgnoreFlag 8 Размер виджета игнорируется. Виджет получит как можно больше места.

См. также Policy.

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

QSizePolicy::QSizePolicy()

Создаёт объект QSizePolicy с политиками Fixed для горизонтального и вертикального направления.

Политики могут быть изменены с помощью функций setHorizontalPolicy() и setVerticalPolicy(). Используйте функцию setHeightForWidth(), если предпочтительная высота виджета зависит от его ширины (например, QLabel с переходом на новую строку).

См. также setHorizontalStretch() и setVerticalStretch().

QSizePolicy::QSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical, QSizePolicy::ControlType type = DefaultType)

Создаёт объект QSizePolicy с заданными политиками horizontal и vertical и указанным типом управления type.

Используйте setHeightForWidth(), если предпочтительная высота виджета зависит от ширины виджета (например, QLabel с переходом на новую строку).

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

См. также setHorizontalStretch(), setVerticalStretch() и controlType().

QSizePolicy::ControlType QSizePolicy::controlType() const

Возвращает тип управления, связанный с виджетом, для которого применяется эта политика размера.

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

См. также setControlType().

Qt::Orientations QSizePolicy::expandingDirections() const

Возвращает значение, определяющее, может ли виджет использовать больше места, чем указывает метод QWidget::sizeHint().

Значение Qt::Horizontal или Qt::Vertical означает, что виджет может увеличиваться по горизонтали или вертикали (т. е. горизонтальная или вертикальная политика — Expanding или MinimumExpanding), а Qt::Horizontal | Qt::Vertical означает, что он может увеличиваться по обоим измерениям.

См. также horizontalPolicy() и verticalPolicy().

bool QSizePolicy::hasHeightForWidth() const

Возвращает true , если предпочтительная высота виджета зависит от его ширины; в противном случае возвращает false.

См. также setHeightForWidth().

bool QSizePolicy::hasWidthForHeight() const

Возвращает true , если ширина виджета зависит от его высоты; в противном случае возвращает false.

См. также setWidthForHeight().

QSizePolicy::Policy QSizePolicy::horizontalPolicy() const

Возвращает горизонтальную компоненту политики размера.

См. также setHorizontalPolicy(), verticalPolicy(), и horizontalStretch().

int QSizePolicy::horizontalStretch() const

Возвращает горизонтальный коэффициент растяжения политики размера.

См. также setHorizontalStretch(), verticalStretch(), и horizontalPolicy().

bool QSizePolicy::retainSizeWhenHidden() const

Возвращает значение, указывающее, должна ли компоновка сохранять размер виджета при его скрытии. По умолчанию это false.

Данная функция была добавлена в Qt 5.2.

См. также setRetainSizeWhenHidden().

void QSizePolicy::setControlType(QSizePolicy::ControlType type)

Устанавливает тип управления, связанный с виджетом, к которому применяется данная политика размера, в type.

Тип управления указывает тип виджета, к которому применяется данная политика размера. Он используется некоторыми стилями, в частности QMacStyle, для вставки соответствующих отступов между виджетами. Например, рекомендации macOS Aqua предписывают, чтобы кнопки были разделены 12 пикселями, тогда как вертикально расположенные радиокнопки требуют только 6 пикселей.

Данная функция была добавлена в Qt 4.3.

См. также controlType() и QStyle::layoutSpacing().

void QSizePolicy::setHeightForWidth(bool dependent)

Устанавливает флаг, определяющий, зависит ли предпочтительная высота виджета от его ширины, в значение dependent.

См. также hasHeightForWidth() и setWidthForHeight().

void QSizePolicy::setHorizontalPolicy(QSizePolicy::Policy policy)

Устанавливает горизонтальную компоненту заданной policy.

См. также horizontalPolicy(), setVerticalPolicy(), и setHorizontalStretch().

void QSizePolicy::setHorizontalStretch(int stretchFactor)

Устанавливает горизонтальный коэффициент растяжения политики размера заданным значением stretchFactor. stretchFactor должен быть в диапазоне [0,255].

При расположении двух виджетов рядом в горизонтальной компоновке, установка горизонтального коэффициента растяжения виджета слева в 2, а виджета справа в 1 гарантирует, что виджет слева всегда будет в два раза больше виджета справа.

См. также horizontalStretch(), setVerticalStretch(), и setHorizontalPolicy().

void QSizePolicy::setRetainSizeWhenHidden(bool retainSize)

Устанавливает, должна ли компоновка сохранять размер виджета при его скрытии. Если retainSize равно true, компоновка не будет изменена при скрытии виджета.

Данная функция была добавлена в Qt 5.2.

См. также retainSizeWhenHidden().

void QSizePolicy::setVerticalPolicy(QSizePolicy::Policy policy)

Устанавливает вертикальную компоненту заданной policy.

См. также verticalPolicy(), setHorizontalPolicy(), и setVerticalStretch().

void QSizePolicy::setVerticalStretch(int stretchFactor)

Устанавливает вертикальный коэффициент растяжения политики размера заданным значением stretchFactor. stretchFactor должен быть в диапазоне [0,255].

При расположении двух виджетов рядом в вертикальной компоновке, установка вертикального коэффициента растяжения верхнего виджета в 2, а нижнего в 1 гарантирует, что верхний виджет всегда будет в два раза больше нижнего.

См. также verticalStretch(), setHorizontalStretch(), и setVerticalPolicy().

void QSizePolicy::setWidthForHeight(bool dependent)

Устанавливает флаг, определяющий, зависит ли ширина виджета от его высоты, в значение dependent.

Это поддерживается только для подклассов QGraphicsLayout. Одновременное использование ограничений высоты по ширине и ширины по высоте в одной компоновке невозможно.

См. также hasWidthForHeight() и setHeightForWidth().

void QSizePolicy::transpose()

Меняет местами горизонтальную и вертикальную политики и коэффициенты растяжения.

См. также transposed().

QSizePolicy QSizePolicy::transposed() const

Возвращает объект политики размера, в котором поменяны местами горизонтальная и вертикальная политики и коэффициенты растяжения.

Данная функция была добавлена в Qt 5.9.

См. также transpose().

QSizePolicy::Policy QSizePolicy::verticalPolicy() const

Возвращает вертикальную компоненту политики размера.

См. также setVerticalPolicy(), horizontalPolicy(), и verticalStretch().

int QSizePolicy::verticalStretch() const

Возвращает вертикальный коэффициент растяжения политики размера.

См. также setVerticalStretch(), horizontalStretch(), и verticalPolicy().

QVariant QSizePolicy::operator QVariant() const

Возвращает QVariant, хранящую этот QSizePolicy.

bool QSizePolicy::operator!=(const QSizePolicy &other) const

Возвращает true, если эта политика отличается от other; в противном случае возвращает false.

См. также operator==().

bool QSizePolicy::operator==(const QSizePolicy &other) const

Возвращает true, если эта политика равна other; в противном случае возвращает false.

См. также operator!=().

Связанные нечлены

uint qHash(QSizePolicy key, uint seed = ...)

Возвращает значение хэша для key, используя seed для инициализации вычисления.

Данная функция была добавлена в Qt 5.6.

QDataStream &operator<<(QDataStream &stream, const QSizePolicy &policy)

Записывает политику размера policy в поток данных stream.

Данная функция была добавлена в Qt 4.2.

См. также Формат операторов QDataStream.

QDataStream &operator>>(QDataStream &stream, QSizePolicy &policy)

Считывает политику размера policy из потока данных stream.

Данная функция была добавлена в Qt 4.2.

См. также Формат операторов QDataStream.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qsizepolicy.html

Spec-Zone.ru

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