Spec-Zone.ru › Qt 5.6

Класс 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(Policy horizontal, Policy vertical, ControlType type = DefaultType)
ControlType controlType() const
Qt::Orientations expandingDirections() const
bool hasHeightForWidth() const
bool hasWidthForHeight() const
Policy horizontalPolicy() const
int horizontalStretch() const
bool retainSizeWhenHidden() const
void setControlType(ControlType type)
void setHeightForWidth(bool dependent)
void setHorizontalPolicy(Policy policy)
void setHorizontalStretch(int stretchFactor)
void setRetainSizeWhenHidden(bool retainSize)
void setVerticalPolicy(Policy policy)
void setVerticalStretch(int stretchFactor)
void setWidthForHeight(bool dependent)
void transpose()
Policy verticalPolicy() const
int verticalStretch() const
operator QVariant() const
bool operator!=(const QSizePolicy &other) const
bool operator==(const QSizePolicy &other) const

Связанные внешние функции

uint qHash(QSizePolicy key, uint seed = 0)
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 — это синоним для 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(Policy horizontal, Policy vertical, ControlType type = DefaultType)

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

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

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

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

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

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

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

Policy QSizePolicy::verticalPolicy() const

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

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

int QSizePolicy::verticalStretch() const

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

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

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 = 0)

Возвращает значение хеша для 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/archives/qt-5.6/qsizepolicy.html

Spec-Zone.ru

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